You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需安装依赖包 基于布尔值切换控制字段显示的实现方法

布尔字段联动显示文本字段实现方案

完全可以通过框架原生能力监听字段变化完成条件渲染,无需安装任何第三方依赖,以下是具体实现方法:

最终修改代码

Boolean::make('Blocked', 'isBlocked')
    ->hideFromIndex(),

Textarea::make('Reason', 'blockedReason')
    // 监听isBlocked字段的数值变化
    ->dependsOn('isBlocked')
    // 仅当isBlocked为true时显示当前输入框
    ->showIf(fn () => $this->isBlocked)
    ->withMeta([
        'extraAttributes' => [
            'placeholder' => '填写内容不要超过255个字符',
        ]
    ])
    // 条件设置校验规则:isBlocked为true时必填,否则可为空
    ->rules(fn ($request) => $request->isBlocked ? ['required', 'max:255'] : ['nullable', 'max:255'])
    ->rows(3)
    ->hideFromIndex(),

实现逻辑说明

  • dependsOn 是框架原生提供的字段联动方法,传入需要监听的字段名后,当前字段会自动同步监听字段的数值变更
  • showIf 方法接收一个闭包作为判断条件,闭包返回true时显示当前字段,返回false时自动隐藏
  • 条件校验规则是为了避免字段隐藏时仍然触发必填校验,导致表单提交失败

如果使用的是不支持dependsOn的旧版本,可通过给两个字段加自定义标识,再在后台页面注入少量自定义JS监听布尔值变化控制文本框显隐,也不需要引入第三方依赖。

内容的提问来源于stack exchange,提问作者sirATL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:45:04