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 不受影响。

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式