laravel では、with() メソッドが「ハングリー ロード」として使用されます。つまり、laravel はメイン モデルとの正確な関係をプリロードします。このメソッドを使用すると、クエリの問題「1 N」問題を軽減できます。 「1 1」クエリのみが問題を解決できます。
#この記事の動作環境: Windows 10 システム、Laravel バージョン 6、Dell G3 コンピューター。
laravel で with メソッドを使用する方法
with()
with()メソッドは「ハングリーロード」として使用されます。これは主に、laravel がメインモデルとの正確な関係をプリロードすることを意味します。これは、モデルにすべての関係を追加する場合に非常に役立ちます。 「ハングリー ロード」により 1N クエリの問題が軽減されるため、問題を解決するのに必要なクエリは 11 回だけになり、クエリ速度が大幅に向上します。
例:
user > hasMany > post $users = User::with('posts')->get(); foreach($users as $user){ $users->posts; // posts已经被加载了,没有增加DB查询 }
拡張子:
has()
has() メソッドは、関連関係 モデルのクエリ結果をフィルタリングするため、その機能は where 条件と非常によく似ています。 has('post') のみを使用する場合は、少なくとも 1 つのポスト関連付けを持つこのモデルのみを取得することを意味します。
例:
user > hasMany > post //User至少有一条post的关联关系 $users = User::has('post')->get();
「.」を使用してネストされた has ステートメントを構築することもできます。
例:
user > hasMany > post $user = User::has('post.votes', '>', '3')->get();
関連する推奨事項:最新の 5 つの Laravel ビデオ チュートリアル
以上がLaravelでwithメソッドを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。