Laravel Eloquent を使用した CRUD 操作の最適化
Laravel でデータベースを操作する場合、レコードを挿入または更新するのが一般的です。これを実現するために、開発者は多くの場合、挿入または更新の実行を決定する前にレコードが存在するかどうかをチェックする条件付きステートメントに頼ります。
firstOrNew() メソッド
幸いなことに、 Eloquent は、firstOrNew() メソッドを通じて、より効率的なソリューションを提供します。このメソッドは、指定された基準に基づいてレコードの存在を確認し、見つかった場合は最初に一致するレコードを返します。それ以外の場合は、モデルの新しいインスタンスが作成されます。
使用例
次の例を考えてみましょう。
<code class="php">$shopOwner = ShopMeta::where('shopId', '=', $theID) ->where('metadataKey', '=', 2001) ->firstOrNew(); if ($shopOwner->exists) { // Update the existing record } else { // Insert a new record }</code>
この例では、 firstOrNew() メソッドは、shopId とmetadataKey に基づいて ShopMeta レコードを検索するために使用されます。レコードが存在する場合、if ブロックが実行され、既存のレコードが更新されます。それ以外の場合は、else ブロックが実行され、新しいレコードが挿入されます。
拡張例
firstOrNew() の威力を示す、より包括的な例を次に示します。
<code class="php">$user = User::firstOrNew(array('name' => Input::get('name'))); $user->foo = Input::get('foo'); $user->save();</code>
ドキュメントの更新
回答に記載されているドキュメントのリンクは最新ではないことに注意してください。 Laravel の最新バージョンについては、次のドキュメントを参照してください:
[更新された Laravel ドキュメント](https://laravel.com/docs/8.x/eloquent)
以上がLaravel Eloquent の firstOrNew() メソッドを使用して CRUD 操作を効果的に最適化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。