데이터베이스 작업 시 새 레코드가 없으면 이를 삽입하거나 기존 레코드를 업데이트해야 하는 경우가 많습니다. 그렇다면. Laravel의 Eloquent ORM에서는 firstOrNew() 메소드를 사용하여 이 작업을 간결하게 수행할 수 있습니다.
$model = Model::firstOrNew($attributes);
레코드가 데이터베이스에 이미 존재하는 경우 firstOrNew() 메서드는 해당 모델의 인스턴스를 반환합니다. 그런 다음 해당 속성을 수정하고 save() 메소드를 사용하여 저장할 수 있습니다.
<code class="php">$user = User::firstOrNew(array('name' => Input::get('name'))); $user->foo = Input::get('foo'); $user->save();</code>
레코드가 데이터베이스에 없으면 firstOrNew() 메소드 지정된 속성을 가진 모델의 새 인스턴스를 생성합니다. 그런 다음 save() 메서드를 호출하면 데이터베이스에 레코드를 삽입합니다.
<code class="php">// Insert new record into database</code>
제공된 코드 조각에서 다음 접근 방식도 사용됩니다. 존재하지 않는 경우 새 레코드를 생성하고 존재하는 경우 기존 레코드를 업데이트합니다.
<code class="php">$shopOwner = ShopMeta::where('shopId', '=', $theID) ->where('metadataKey', '=', 2001)->first(); if ($shopOwner == null) { // Insert new record into database } else { // Update the existing record }</code>
이 접근 방식에는 먼저 데이터베이스를 쿼리하여 기존 레코드를 검색하는 작업이 포함됩니다. 레코드가 없으면 새 레코드가 삽입됩니다. 그렇지 않으면 기존 레코드가 업데이트됩니다.
firstOrNew() 메서드에 대한 최신 정보는 아래 링크된 업데이트된 문서를 참조하세요.
[업데이트된 문서 링크](https://laravel.com/docs/8.x/eloquent)
위 내용은 Eloquent의 firstOrNew() 메소드를 사용하여 효율적으로 레코드를 삽입하거나 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!