ホームページ >バックエンド開発 >PHPチュートリアル >Laravel Eloquent の firstOrNew() メソッドを使用してデータベース操作を圧縮する方法
Laravel のデータベース ツールキット内で、Eloquent は、レコードを処理するための便利なメソッドを提供しますレコードの挿入と更新の両方を同時に実行します。この方法により、これらの操作の明示的なコードを記述する手間が省けます。
新しいレコードを挿入するか、または挿入するかを決定する必要があるシナリオを想像してください。特定の条件の存在に基づいて既存のものを更新します。従来、これには、レコードの存在とその後の挿入または更新クエリの個別のチェックが必要でした。
Laravel の Eloquent では、このタスクに対する簡潔なアプローチ、firstOrNew() が導入されています。提供された PHP スニペットに示されているように:
<code class="php">$shopOwner = ShopMeta::where('shopId', '=', $theID) ->where('metadataKey', '=', 2001)->first();</code>
このコードは、指定された shopId とmetadataKey を持つレコードが 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 中国語 Web サイトの他の関連記事を参照してください。