Laravel의 데이터베이스 툴킷 내에서 Eloquent는 레코드를 처리하기 위한 편리한 방법을 제공합니다. 레코드 삽입과 업데이트를 동시에 수행합니다. 이 방법을 사용하면 이러한 작업에 대한 명시적인 코드를 작성하는 번거로움이 줄어듭니다.
새 레코드를 삽입할지 또는 기존 레코드를 삽입할지 결정해야 하는 시나리오를 상상해 보세요. 특정 조건의 존재에 따라 기존 항목을 업데이트합니다. 전통적으로 이를 위해서는 레코드 존재와 후속 삽입 또는 업데이트 쿼리에 대해 별도의 확인이 필요합니다.
Laravel의 Eloquent는 이 작업에 대한 간결한 접근 방식인 firstOrNew()를 도입합니다. 제공된 PHP 코드 조각에 설명된 대로:
<code class="php">$shopOwner = ShopMeta::where('shopId', '=', $theID) ->where('metadataKey', '=', 2001)->first();</code>
이 코드는 지정된 shopId 및 메타데이터 키를 사용하여 ShopMeta 테이블에 레코드가 있는지 확인합니다. 해당 레코드가 없으면 null을 반환합니다.
삽입/업데이트 프로세스를 계속하려면:
<code class="php">if ($shopOwner == null) { // Insert new record into database } else { // Update the existing record }</code>
$shopOwner가 실제로 null이면 새 레코드를 삽입할 수 있습니다. 그렇지 않으면 기존 레코드가 업데이트될 수 있습니다.
"lu cip"에서 제안한 향상된 솔루션은 firstOrNew() 메서드를 활용하는 것입니다. 조건부 검사의 필요성:
<code class="php">$user = User::firstOrNew(array('name' => Input::get('name'))); $user->foo = Input::get('foo'); $user->save();</code>
이 업데이트된 접근 방식을 사용하면 지정된 이름의 레코드가 있으면 검색됩니다. 그렇지 않으면 새 레코드가 생성됩니다. 후속 작업(예: foo 설정)과 레코드 저장은 단일 save() 호출로 간소화됩니다.
위 내용은 Laravel Eloquent의 firstOrNew() 메소드를 사용하여 데이터베이스 작업을 어떻게 압축하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!