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

Posted

技术标签:

【中文标题】在 Laravel 中,有没有办法找出是不是创建了 `firstOrCreate` 或者是不是找到了行?【英文标题】:In Laravel, is there a way to find out whether `firstOrCreate` created or if it found the row?在 Laravel 中,有没有办法找出是否创建了 `firstOrCreate` 或者是否找到了行? 【发布时间】:2016-08-01 07:22:21 【问题描述】:

在 Laravel 中,有没有办法区分 firstOrCreate 创建行和是否从之前找出行存在?

还是我必须先手动执行get(),然后再创建行?

【问题讨论】:

如果存在,它会找到数据,否则它将创建新数据。 是的,但我想知道数据是否存在并且它什么也没做,或者它是否创建了数据。 $test = Model::firstOrCreate() just print_r($test) 这将显示数据。 帮助你理解***.com/questions/27877948/… 一个更有意义的资源***.com/questions/25178464/first-or-create 【参考方案1】:

如果您在当前生命周期中创建了模型,则模型的wasRecentlyCreated 属性将设置为true。否则,该属性将设置为false

换句话说,假设您有一个电子邮件用户bob@example

$user = User::firstOrCreate(['email' => 'bob@example.com']);

// the below will dump out false because this entry already existed
var_dump($user->wasRecentlyCreated);

现在,假设new@example.com 不存在。

$user2 = User::firstOrCreate(['email' => 'new@example.com']);

// the below will dump out true because this user was created
// in the current request lifecycle
var_dump($user2->wasRecentlyCreated);

【讨论】:

很好吃 Brilliant Laravel 已经涵盖了所有内容。

以上是关于在 Laravel 中,有没有办法找出是不是创建了 `firstOrCreate` 或者是不是找到了行?的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 中从数据库创建模型

有没有办法检查 laravel 5.2 中的几个输入是不是唯一?

有没有办法找出视图控制器是不是从导航堆栈中弹出?

有没有办法在没有数据库的情况下使用 laravel 4.2 身份验证?

有没有办法在 laravel 的不同数据库中对用户进行身份验证?

有没有办法找出用于创建移动应用程序的工具?