关于laravel-admin form自定义字段的问题
业务场景:封禁用户
user表中没有reason(原因)字段,我想在保存时只想将reason存入缓存中,unset($form->reason)没有效果,依然报错:
SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘reason’
form = new Form(new User());
...
$form->radio('ban', __('Ban'))
->options(['0' => __('Normal'), '1' => __('Time limited ban'), '2' => __('Permanent ban')])
->when(1, function (Form $form) {
$form->datetime('time_limited', __('Time limited'));
$form->textarea('reason', __("Reason"));
})->when(2, function (Form $form) {
$form->textarea('reason', __("Reason"));
});
$form->saving(function (Form $form) {
$user_id = $form->model()->id;
switch ($form->ban){
...
case 2:
if(Redis::exists('ban:'.$user_id)){
Redis::del('ban:'.$user_id);
}
unset($form->reason);
//dump($form);exit();
Redis::hMSet('ban:'.$user_id,['reason'=>$form->reason]);
break;
....
}
});
推荐文章: