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

命中水
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 2
Dcatplus-杨光

使用表单隐藏域不行吗?

file

6小时前 评论
命中水 (楼主) 6小时前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!