在Laravel中,有没有办法找出“firstOrCreate”是否创建或是否找到了该行?

2022-08-30 11:19:38

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

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


答案 1

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

换句话说,假设您有一个用户的电子邮件。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);

答案 2

推荐