ホームページ >バックエンド開発 >PHPチュートリアル >Laravel Eloquent で複数の WHERE 句を効率的にチェーンまたはグループ化するにはどうすればよいですか?
Laravel Eloquent で複数の WHERE 句をチェーンまたはグループ化する
Laravel Eloquent クエリで複数の WHERE 句を使用する場合、標準のチェーン構文。ただし、コードの優雅さと読みやすさを向上させるために利用できる代替アプローチがいくつかあります。
配列ベースの WHERE 句の使用
Laravel 5.3 で導入された array-ベースの WHERE 句を使用すると、複数の条件を 1 回の呼び出しでグループ化できます。これにより、次の例に示すように、必要なコードの行数が大幅に削減されます。
$query->where([ ['column_1', '=', 'value_1'], ['column_2', '!=', 'value_2'], ['column_3', '=', 'value_3'], ... ]);
AND 演算の WHERE 句をグループ化
WHERE 句では AND 演算子を使用するため、それらを配列にグループ化し、where メソッドに渡すことができます。これは配列ベースのアプローチに似ていますが、AND 条件を明示的に指定します。
$matchThese = ['field' => 'value', 'another_field' => 'another_value', ...]; $results = User::where($matchThese)->get();
OR 演算子を使用してグループを結合する
両方を使用してより複雑なクエリを作成するにはAND 演算子と OR 演算子では、ネストされた配列を使用できます。次の例では、前の 2 つの手法を組み合わせています。
$matchThese = ['field' => 'value', 'another_field' => 'another_value', ...]; $orThose = ['yet_another_field' => 'yet_another_value', ...]; $results = User::where($matchThese) ->orWhere($orThose) ->get();
このクエリは次の SQL を生成します。
SELECT * FROM users WHERE (field = value AND another_field = another_value AND ...) OR (yet_another_field = yet_another_value AND ...)
これらの代替アプローチを使用すると、クエリの明確さと簡潔さを向上させることができます。雄弁なクエリにより、冗長で反復的なチェーン構文の必要性が軽減されます。
以上がLaravel Eloquent で複数の WHERE 句を効率的にチェーンまたはグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。