如题,Dcat Admin 在表单字段动态显示时,如果字段设置了 required() 必填选项,并且切换到其他条件,那么此时表单即无法正常提交,也没有错误显示。

如图,只有在缺卡或者未打卡时显示未刷卡原因字段,并且此时要求必须填写未刷卡原因。如果没填写未刷卡原因且切换到了其他类型比如:迟到时,这个表单就无法提交了,也看不到错误显示。

解决方法是用 rules() 及 required_if 结合的方式:

//错误写法:
$form->select('no_clock_in_reason','未刷卡原因')->options(config('hr.no_clock_in_reasons'))->required();//正确写法:
$form->select('no_clock_in_reason','未刷卡原因')->options(config('hr.no_clock_in_reasons'))->rules('required_if:type,no_clock_in,no_am_clock_in,no_pm_clock_in');