>  기사  >  PHP 프레임워크  >  laravel中firstOrNew, firstOrCreate, firstOr 와 updateOrCreate 방법

laravel中firstOrNew, firstOrCreate, firstOr 와 updateOrCreate 방법

藏色散人
藏色散人앞으로
2020-05-16 11:53:426033검색

다음 소개 튜토리얼 칼럼은 Laravel에서 laravel의 firstOrNew, firstOrCreate, firstOr 및 updateOrCreate 메소드를 소개합니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제