繁体   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