Laravel firstOrNew 与 firstOrCreate 的区别

例如:

$item = App\Deployment::firstOrNew(
['name' => '问答小程序'], ['delayed' => 1]
);
  • firstOrNew 需要手动调用 save,才会保存到数据库。适合同时需要修改其他属性的场景。
  • firstOrCreate 会自动保存到数据库。适合不需要额外修改其他属性的场景。

注意:MassAssignmentException

firstOrCreate 一定要设置 model 的 fillable, 否则会报 MassAssignmentException 的错误。

参考: Laravel Model 的 fillable (白名单)与 guarded (黑名单)

即,create 受 fillable 的限制,但是 save 不受影响。

上一篇:Ionic下的JPush缺少统计代码问题解决方法


下一篇:hdu 1540 Tunnel Warfare (区间线段树(模板))