データベースを操作する場合、通常、新しいレコードが存在しない場合はそれを挿入したり、既存のレコードを更新したりする必要があります。そうであれば。 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 中国語 Web サイトの他の関連記事を参照してください。