簡體   English   中英

Eloquent的create()/ fill如何工作()?

[英]How does Eloquent's create()/fill work()?

我試圖通過在模型中這樣做來連續設置記錄:

protected $fillable = ['completeness','task'];
    public  function add($records) {
        $this->create($records);
        $this->save();
    }

盡管所有值都存在,但我得到了:

QLSTATE [23502]:不為null違反:7錯誤:“ user_id”列中的null值違反了非null約束細節:失敗的行包含(5、120,null,非常詳細,null,null,null,null,null,null ,2015-10-02 07:12:05,2015-10-02 07:12:05)。

create()fill()工作?

雄辯的fill()方法非常簡單。 它采用一組鍵值對( key是字段名稱, value是... well值)。

它:

  1. 檢查模型是否被完全保護,即$guarded數組中為*$fillable數組為空。 如果是這樣,它將最終引發“批量分配”異常
  2. 遍歷數組(如果存在鍵,則從鍵中刪除表名),檢查該字段是否可大量分配,如果存在變量,則將該值變異,然后將其添加到模型的$attributes數組中。

create()創建模型的新實例,然后使用fill()方法,然后保存並返回該新實例。

如果您想更深入地研究它,文件位於:

vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM