laravel中firstorcreate和updateorcreate的操作区分

Posted willem_chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel中firstorcreate和updateorcreate的操作区分相关的知识,希望对你有一定的参考价值。

laravel中firstorcreate和updateorcreate的操作区分

firstorcreate

Model::firstorcreate(param1, param2)中的,第一个参数是条件。第二个是需要操作的数据。

操作顺序是:

1、先尝试查询该条件下的记录。

2、如果记录不存在则进行存储,存储完成后,返回该记录模型。

updateorcreate

Model::updateorcreate(param1, param2)中的,第一个参数是条件。第二个是需要操作的数据。

操作顺序是:

1、先尝试查询该条件下的记录。

2、如果记录存在则进行记录的更新操作,不存在的话执行存储操作,然后返回该记录模型。

如果你想知道上面的操作执行是:

第1个操作
还是第2个操作

可以获取操作完成模型的wasRecentlyCreated属性,如果属性值是true表示执行的是第二个操作,否则就是第一次操作。

测试

在这里插入图片描述
数据不存在返回:true
在这里插入图片描述
数据存在返回:false
在这里插入图片描述

以上是关于laravel中firstorcreate和updateorcreate的操作区分的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 中,有没有办法找出是不是创建了 `firstOrCreate` 或者是不是找到了行?

Laravel FirstOrCreate和Save()重复输入

Laravel Eloquent - 关系上的 firstOrCreate()

Laravel 8 - firstOrCreate() 不返回数据库中设置的默认值

Laravel 5 firstOrCreate 保持创建甚至设置唯一的字段

Laravel firstOrNew 与 firstOrCreate 的区别