在 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 5.2 中的几个输入是不是唯一?
有没有办法在没有数据库的情况下使用 laravel 4.2 身份验证?