laravel-admin 的 表单允许字段为空小改

laravel 版本 6.5.2

laravel-admin 版本 1.5

 

laravel-admin 的如果想要某个字段不填就提交的话,官方文档上是这么写的

但是,有些字段就是选填的啊,也不想把数据库对应的字段设置为null,查的时候麻烦,下面小改一下

1,我这里对应的是这个资源控制器

$router->resource('resources', ResourceController::class);

2,所以,当表单提交的时候,默认是提交到了store方法,这个方法在下面的路径中

vendor/encore/laravel-admin/src/Controllers/HasResourceActions.php

//就这么3行
public function store()
{
    return $this->form()->store();
}

3,上面的代码,调用了下面这个类的store方法,这个方法代码太多,只贴部分代码

vendor/encore/laravel-admin/src/Form.php

DB::transaction(function(){
    $inserts = $this->prepareInsert($this->updates);

    foreach ($inserts as $column => $value) {
        //就是用这个方法,给model设置要保存的字段
        $this->model->setAttribute($column, $value);
    }

    $this->model->save();

    $this->updateRelation($this->relations);
});

4,上面的setAttribute方法,在下面这个文件里

vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php

只要在setAttribute方法里加上这3行,就搞定了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章