Dcat Admin编辑saving事件修改boolean字段不生效?
Report模型文件
protected $fillable = [
'title',
'summary',
'total_page',
'generated_at',
'is_show',
'is_top',
'review_count',
];
protected $casts = [
'generated_at' => 'datetime',
'is_show' => 'boolean',
];
ReportController文件
protected function form()
{
return Form::make(new Report(), function (Form $form) {
$form->text('title')->required()->rules('required|max:255');
$form->textarea('summary')->rows(5)->required();
$form->radio('is_show')->default(false);
$form->switch('is_top')->default(false);
$form->text('review_count')->default(0)->readOnly();
$form->datetime('created_at')->default(now());
$form->hidden('admin_user_id');
$form->hidden('total_page');
$form->hidden('generated_at');
$form->disableDeleteButton();
$form->disableCreatingCheck();
$form->disableEditingCheck();
$form->disableViewCheck();
$form->saving(function (Form $form) {
if($form->isCreating()) {
// 后台管理员admin_user_id
$form->admin_user_id = Admin::user()->id;
}else {
$form->admin_user_id = $form->model()->admin_user_id;
// 判断报告文件是否有修改
if($form->file_path != $form->model()->file_path) {
$form->total_page = null;
$form->generated_at = null;
$form->is_show = false;
}
}
});
});
}
提交后hidden字段total_page和generated_at可以更新,但是is_show字段无法更新,尝试更新review_count发现也是可以更新,那么肯能是boolean字段的问题,有人遇到过吗?
关于 LearnKu
没选中吧,如果radio不选择,是不传输这个字段的,也就不会更新,你可以看一下传递的参数
casts 定义了 'is_show' => 'boolean', 当is_show false 你在修改的时候 没有任何参数返回 则不会被选中;只有true的时候才会被选中
你的问题应该是 把这个删除就可以了 'is_show' => 'boolean',