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]: Not null violation: 7 ERROR: null value in column
"user_id" violates not-null constraint DETAIL: Failing row contains
(5, 120, null, very detailed, null, null, null, null, null, null,
2015-10-02 07:12:05, 2015-10-02 07:12:05).
create()
或 fill()
是如何工作的?
eloquent 中的 fill()
方法非常简单。它需要一组键值对(key
是字段名称,value
是...井值)。
它:
- 检查模型是否完全受保护,即
$guarded
数组中的 *
或 $fillable
数组中的空模型。如果是这样,它最终会抛出 Mass Assignment 异常
- 循环遍历数组(如果 table 名称存在,则从键中删除它),检查该字段是否可批量分配,如果存在增变器则改变该值,然后添加它到模型上的
$attributes
数组。
create()
创建模型的新实例,然后使用 fill()
方法,然后保存并 returns 该新实例。
如果您想更详细地研究它,文件位于:
vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php
希望对您有所帮助!
我试图通过在我的模型中这样做来连续设置记录:
protected $fillable = ['completeness','task'];
public function add($records) {
$this->create($records);
$this->save();
}
虽然所有值都在那里,但我得到这个:
QLSTATE[23502]: Not null violation: 7 ERROR: null value in column "user_id" violates not-null constraint DETAIL: Failing row contains (5, 120, null, very detailed, null, null, null, null, null, null, 2015-10-02 07:12:05, 2015-10-02 07:12:05).
create()
或 fill()
是如何工作的?
eloquent 中的 fill()
方法非常简单。它需要一组键值对(key
是字段名称,value
是...井值)。
它:
- 检查模型是否完全受保护,即
$guarded
数组中的*
或$fillable
数组中的空模型。如果是这样,它最终会抛出 Mass Assignment 异常 - 循环遍历数组(如果 table 名称存在,则从键中删除它),检查该字段是否可批量分配,如果存在增变器则改变该值,然后添加它到模型上的
$attributes
数组。
create()
创建模型的新实例,然后使用 fill()
方法,然后保存并 returns 该新实例。
如果您想更详细地研究它,文件位于:
vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php
希望对您有所帮助!