laravelのfirstOrNew、firstOrCreate、firstOrおよびupdateOrCreateメソッド
以下は Laravel によって開発されました入門チュートリアルのコラムでは、laravel の firstOrNew、firstOrCreate、firstOr、および updateOrCreate メソッドを紹介します。必要!
Laravel を使用したことがある場合は、おそらく make()、create()、update、save() などの Eloquent モデルを作成する標準的な方法をご存知でしょう。 Laravel は、モデルの作成と更新に非常に役立つことを人々が気づいていない他のメソッドも提供します。したがって、この記事では、他のメソッドをいくつか紹介し、それらが役立つことを示したいと思います。
firstOrNew
firstOrNew メソッドは、特定の制約を満たす最初のメソッドを見つけます。 Model, new は、制約を満たすデータがない場合に新しいモデルを作成します。
次のコードを使用できます:
$user = User::where('email', request('email'))->first(); if ($user === null) { $user = new User(['email' => request('email')]); } $user->name = request('name'); $user->save()
を次のように書き換えます:
$user = User::firstOrNew(['email' => request('email')]); $user->name = request('name'); $user->save()
既存のモデルが見つからない場合は、2 番目のパラメータ An を介してそれを渡すこともできます。追加プロパティの配列:
$user = User::firstOrNew( ['email' => request('email')], ['name' => request('name')] ); $user->save();
firstOrCreate
firstOrCreate メソッドは、firstOrNew メソッドとよく似ています。渡された最初のパラメータに基づいて一致するモデルの検索を試みます。見つからない場合は、2 番目のパラメータで渡された値を使用して新しいモデルを自動的に作成し、保存します:
$user = User::firstOrCreate( ['email' => request('email')], ['name' => request('name')] ); // No call to $user->save() needed
firstOr
#最近、釣りをしているときに firstOr メソッドを発見しました。 firstOr メソッドは最初のデータを取得します。一致するデータが見つからない場合は、受信したコールバックが実行されます。これは、ユーザーの作成時に追加の手順を実行する必要がある場合、または新しいユーザーの作成以外のことを実行したい場合に便利です。$user = User::where('email', request('email'))->firstOr(function () { $account = Account::create([ //... ]); return User::create([ 'account_id' => $account->id, 'email' => request('email'), ]); });
updateOrCreate
updateOrCreate メソッド最初の引数で渡された制約に一致するモデルの検索を試みます。一致するモデルが見つかった場合は、2 番目の引数に渡されたプロパティを使用してモデルを更新します。一致するモデルが見つからない場合は、最初と 2 番目のパラメーターを渡して新しいモデルが作成されます。 このコードをリファクタリングできます:$user = User::where('email', request('email'))->first(); if ($user !== null) { $user->update(['name' => request('name')]); } else { $user = User::create([ 'email' => request('email'), 'name' => request('name'), ]); } // Do other things with the User
$user = User::updateOrCreate( ['email' => request('email')], ['name' => request('name')] ); // Do other things with the User
結論
まとめると、次のようになります。メソッドは場合によってはコードを簡素化するのに役立ちます。他にあまり知られていない便利なヒントがある場合は、お知らせください。私は、Laravel を非常に優れたものにする細部について学ぶのが大好きです。 laravel フレームワークの技術記事については、以上がlaravelのfirstOrNew、firstOrCreate、firstOrおよびupdateOrCreateメソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Laravel - アーティザン コマンド - Laravel 5.7 には、新しいコマンドを処理およびテストするための新しい方法が付属しています。これには職人コマンドをテストする新しい機能が含まれており、そのデモについては以下で説明します。

Laravel - ページネーションのカスタマイズ - Laravel には、ユーザーまたは開発者がページネーション機能を組み込むのに役立つページネーションの機能が含まれています。 Laravel ページネーターは、クエリ ビルダーおよび Eloquent ORM と統合されています。自動ページネーションメソッド

Laravelの電子メールの送信が失敗したときに戻りコードを取得する方法。 Laravelを使用してアプリケーションを開発する場合、検証コードを送信する必要がある状況に遭遇することがよくあります。そして実際には...

LaravelスケジュールタスクRAN RANSPONSIVEトラブルシューティングRALAVELのスケジュールタスクスケジューリングを使用すると、多くの開発者がこの問題に遭遇します。スケジュール:実行...

Laravelの電子メールの検証コードの送信の障害を処理する方法は、Laravelを使用することです...

DCATを使用するときにDCATADMIN(Laravel-Admin)にデータを追加するためにカスタムクリックのテーブル関数を実装する方法...

Laravel - ダンプサーバー - Laravel ダンプサーバーには、Laravel 5.7 のバージョンが付属しています。以前のバージョンにはダンプ サーバーが含まれていません。ダンプサーバーはlaravel/laravelコンポーザーファイルの開発依存関係になります。

Laravel FrameworkでRedis接続の共有の影響とLaravelフレームワークとRedisを使用する際のメソッドを選択すると、開発者は問題に遭遇する可能性があります。
