다음 소개 튜토리얼 칼럼은 Laravel에서 laravel의 firstOrNew, firstOrCreate, firstOr 및 updateOrCreate 메소드를 소개합니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!
Laravel을 사용해 본 적이 있다면 make(), create(), update 및 save()와 같은 Eloquent 모델을 생성하는 표준 방법을 알고 있을 것입니다. Laravel은 또한 사람들이 인식하지 못하는 몇 가지 다른 방법도 모델을 생성하고 업데이트하는 데 매우 유용하다는 것을 제공합니다. 따라서 이 기사에서는 몇 가지 다른 방법을 소개하고 그 방법이 유용할 수 있음을 설명하고 싶습니다.
firstOrNew
firstOrNew 방법은 특정 제약 조건을 충족하는 첫 번째 모델을 찾고, 제약 조건을 충족하는 데이터가 없는 경우 새로운 모델을 찾습니다. 새로운 모델.
다음 코드를 사용하여
$user = User::where('email', request('email'))->first(); if ($user === null) { $user = new User(['email' => request('email')]); } $user->name = request('name'); $user->save()
로 다시 작성할 수 있습니다.
$user = User::firstOrNew(['email' => request('email')]); $user->name = request('name'); $user->save()
기존 모델을 찾을 수 없는 경우 두 번째 매개변수
$user = User::firstOrNew( ['email' => request('email')], ['name' => request('name')] ); $user->save();
firstOrCreate를 통해 추가 속성 배열을 전달할 수도 있습니다.
firstOrCreate 메서드는 firstOrNew 메서드와 매우 유사합니다. 전달한 첫 번째 매개변수를 기반으로 일치하는 모델을 찾으려고 시도합니다. 찾지 못한 경우 두 번째 매개변수에 전달된 값을 사용하여 자동으로 새 모델을 생성하고 저장합니다.
$user = User::firstOrCreate( ['email' => request('email')], ['name' => request('name')] ); // No call to $user->save() needed
firstOr
최근에 만져보니 낚시를 하다가 처음으로 Or 메소드를 발견했습니다. firstOr 메소드는 첫 번째 데이터 조각을 검색합니다. 일치하는 데이터가 없으면 수신 콜백이 실행됩니다. 이는 사용자를 생성할 때 추가 단계를 수행해야 하거나 새 사용자 생성 이외의 다른 작업을 수행하려는 경우에 유용합니다.
$user = User::where('email', request('email'))->firstOr(function () { $account = Account::create([ //... ]); return User::create([ 'account_id' => $account->id, 'email' => request('email'), ]); });
updateOrCreate
updateOrCreate 메소드는 첫 번째 인수와 함께 전달된 사용자를 찾으려고 시도합니다. 제약 조건 일치 모델. 일치하는 모델이 발견되면 두 번째 인수에 전달된 속성으로 모델을 업데이트합니다. 일치하는 모델이 없으면 첫 번째 및 두 번째 매개변수를 전달하여 새 모델이 생성됩니다.
이 코드를 리팩토링할 수 있습니다.
$user = User::where('email', request('email'))->first(); if ($user !== null) { $user->update(['name' => request('name')]); } else { $user = User::create([ 'email' => request('email'), 'name' => request('name'), ]); } // Do other things with the User
updateOrCreate 메서드 사용:
$user = User::updateOrCreate( ['email' => request('email')], ['name' => request('name')] ); // Do other things with the User
결론
전반적으로 이러한 메서드는 경우에 따라 코드를 단순화하는 데 도움이 될 수 있습니다! 잘 알려지지 않은 다른 유용한 팁을 알고 계시다면 알려주세요. 나는 Laravel을 훌륭하게 만드는 작은 세부 사항에 대해 배우는 것을 좋아합니다.
더 많은 laravel 프레임워크 기술 기사를 보려면 laravel튜토리얼을 방문하세요!
위 내용은 laravel中firstOrNew, firstOrCreate, firstOr 와 updateOrCreate 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!