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行,就搞定了

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