dcatadmin中表单提交的时候可以新增一个字段保存吗
问题描述
使用的dcatadmin2.x版本
在表单提交的时候,我想设置一个user_id的字段,一起保存到数据库。但是试了各种方法都没用
方法1:
在保存前回调的时候设置user_id
$form->saving(function (Form $form) {
// 1
$form->model()->user_id = auth('admin')->id();
// 2
$form->input('user_id', auth('admin')->id());
});
方法2
在model文件中设置user_id
protected static function booted()
{
static::creating(function ($model) {
if (auth()->check()) {
$model->user_id = auth('admin')->id(); // 自动注入当前用户ID
}
});
}
方法3
按照官方文档的写法,在保存后回调
$form->saved(function (Form $form, $result) {
// 在表單保存後獲取eloquent
$form->model()->update(['data' => 'new']);
});
以上3种写法都不行,最后只能是
$form->saved(function (Form $form, $result) {
\App\Models\YkAccount::where(['id' => $form->getKey()])->update(['user_id' => auth('admin')->id()]);
});
这样才可以。
但是在保存后回调里面再更新user_id,这是两步,有可能保存成功了,更新user_id失败,这就会导致user_id没有值。
而且我看了文档submitted、saving都只是支持修改、删除用户提交的数据或者中断提交操作,并不支持新增。
想请问下大家有新增的方法吗?或者有遇到过类似问题的同学,麻烦提供下解决思路和建议,谢谢了
环境
dcatadmin2.x
laravel9
php8
推荐文章: