Dcat Admin 表单字段设置默认值时,如果默认值是 null 就会报错后面再加上 required 时就会报错。
比如我们有个需求:如果在部门中创建员工,那么部门下拉框默认值是当前部门,否则显示默认的下拉框。写出的代码如下:
protected function form()
{
return Form::make(new Job(), function (Form $form) {
$form->display('id');
$form->select('user_id')->options('api/users')->required();
$form->select('position_id')->options('api/positions')->required();
$form->select('level_id')->options('api/levels')->required();
$form->select('department_id')->options('api/departments')->default(request()->input('department_id'))->required();
$form->date('begin_date')->required();
$form->date('end_date');
$form->display('created_at');
$form->display('updated_at');
});
}
这段代码在 request()->input('department_id')
有值时可以正常运行,但是如果是 null 时,Dcat Admin 会报错,这是因为:在 Dcat Admin 中设置默认值的 default 方法不能设置为 null,否则就是获取了,解决办法也很简单,就是判断下参数是否是 null,如果是 null 转成空字符串就可以了:
$form->select('department_id')->options('api/departments')->default(request()->input('department_id')??'')->required();
(adsbygoogle = window.adsbygoogle || []).push({});
来源:https://www.02405.com/archives/9240