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

Pat*_*Pat 26 php laravel eloquent laravel-5

在Laravel中,有没有办法区分firstOrCreate创建行,如果找出之前存在的行?

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

Tho*_*Kim 46

如果您在当前生命周期中创建了模型,则模型的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);
Run Code Online (Sandbox Code Playgroud)

现在,让我们说不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);
Run Code Online (Sandbox Code Playgroud)

  • 辉煌的 Laravel 已经涵盖了所有内容。 (8认同)
  • 那很好吃 (3认同)