例如:

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

注意:MassAssignmentException

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

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

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

Laravel firstOrNew 与 firstOrCreate 的区别的更多相关文章

  1. laravel中get()与 first()区别、collection与stdClass的区别

    简单的,laravel里get()得到的是一组数据,first()得到的是一个model数据. 从形式上,laravel里每一个model数据(record),在取出的时候都是用的PHP的stdCla ...

  2. laravel url() 和 asset() 的区别

    asset()方法用于引入 CSS/JavaScript/images 等文件,文件必须存放在public文件目录下.url()方法生成一个完整的网址.

  3. laravel job 与 event 的区别

    job 是异步执行.适合耗时长的任务.例如,批量发送邮件,短信. event 是在 request 的生命周期内执行.适合耗时短的操作.例如,更改数据字段状态. 但是, event 的好处是,可以复用 ...

  4. laravel 中first和find区别(总结一)

    检索单个模型/集合 除了从指定的数据表检索所有记录外,你也可以通过 find 或 first 方法来检索单条记录.这些方法不是返回一组模型,而是返回一个模型实例: // 通过主键取回一个模型... $ ...

  5. Laravel和thinkphp的区别/优缺点

    Laravel的设计思想是很先进的,非常适合应用各种开发模式TDD, DDD和BDD,作为使用者最多的php框架,它为你准备好了一切,composer是个php的未来.laravel最大的特点和处优秀 ...

  6. laravel门面与服务提供者区别

    laravel门面模式与服务提供者区别 以 Laravel 自带的文件系统为例,在 config/app.php 的配置文件的 providers 数组中,注册了一个服务提供者: Illuminate ...

  7. [PHP] 浅谈 Laravel Authentication 的 auth:api

    auth:api 在 Laravel 的 Routing , Middleware , API Authentication 主题中都有出现. 一. 在 Routing 部分可以知道 auth:api ...

  8. PHPer面试指南-laravel 篇

    简述 Laravel 的生命周期 Laravel 采用了单一入口模式,应用的所有请求入口都是 public/index.php 文件. 注册类文件自动加载器 : Laravel通过 composer ...

  9. Eloquent中一些其他的create方法

    firstOrCreate/ firstOrNew# 还有两种其它方法,你可以用来通过属性批量赋值创建你的模型:firstOrCreate 和firstOrNew.firstOrCreate 方法将会 ...

随机推荐

  1. Prometheus MySQL_exporter

    MySQL Exporter mysqld_exporter是用来搜集mysql的性能指标的,适用于mysql5.5及其以上版本 程序安装 下载地址:https://prometheus.io/dow ...

  2. python字典遍历的几种方法

    (1)遍历key值 >>> a {'} >>> for key in a: print(key+':'+a[key])   a:1 b:2 c:3 >> ...

  3. python Elasticsearch5.x使用

    文档:http://elasticsearch-py.readthedocs.io/en/master/ Elasticsearch官方API文档:https://www.elastic.co/gui ...

  4. a超链接之返回顶部的两种实现方法

    1.通过css实现: 为页面顶部如body或者自己设置的盒子等加上唯一id属性 <body id="id"> .... <a href="#id&quo ...

  5. bzoj千题计划306:bzoj2342: [Shoi2011]双倍回文 (回文自动机)

    https://www.lydsy.com/JudgeOnline/problem.php?id=2342 解法一: 对原串构建回文自动机 抽离fail树,从根开始dfs 设len[x]表示节点x表示 ...

  6. PHP7 学习笔记(八)JetBrains PhpStorm 2017.1 x64 MySQL数据库管理工具的使用

    填写基本信息 这时候我们可以看到已经连接成功的数据库了 打开一个表,我们可以很清楚的看到数据库表的数据 切换到DDL模式

  7. 在html中控制自动换行

      其实只要在表格控制中添加一句<td style="word-break:break-all">就搞定了.其中可能对英文换行可能会分开一个单词问题:解决如下:语法: ...

  8. Nginx 日志处理

    . nginx日志统计独立ip的个数: awk '{print $1}' /access.log | sort | uniq | wc -l . 查询访问最多的前10个ip awk . 查看某段时间的 ...

  9. UE4中Bebavior Tree中Delay及其后面代码失效的原因

    具体原因是因为节点的执行过程中,该节点及其父节点的Decorator条件不满足,而节点又受到flow control的影响,导致中途强制结束了Task节点的执行,具体如下. UE4中的Behavior ...

  10. JavaScript学习 - 基础(五) - string/array/function/windows对象

    String对象 更详细转:http://www.w3school.com.cn/jsref/jsref_obj_string.asp //------------------------------ ...