Laravel Eloquent では、複雑なクエリの定義に複数の Where 句の連鎖が含まれることがよくあります。このアプローチは機能しますが、退屈で整理されていないように見える可能性があります。
ただし、そのようなクエリを構造化するより良い方法があります。
Laravelネストされた配列を where メソッドに渡す機能が導入され、複数の条件を指定できるようになりました
$query->where([ ['column_1', '=', 'value_1'], ['column_2', '<>', 'value_2'], // ... additional conditions ]);
Laravel の以前のバージョンでは、条件の配列を where メソッドに直接渡すことができました。ただし、このアプローチは、すべての条件で AND 演算子が必要な場合にのみ機能します。
$matchThese = ['field' => 'value', 'another_field' => 'another_value']; $results = User::where($matchThese)->get();
Laravel 5.3 より前のバージョンの別のオプションは、 orWhere メソッドを使用して、複数の条件グループを結合します。これにより、グループ間の OR 条件が作成されました。
$matchThese = ['field' => 'value', 'another_field' => 'another_value']; $orThose = ['yet_another_field' => 'yet_another_value']; $results = User::where($matchThese) ->orWhere($orThose) ->get();
これらのテクニックを利用すると、複雑な WHERE 条件を扱う場合でも、より効率的で読みやすいクエリを作成できます。
以上がLaravel Eloquent で複雑なクエリの WHERE 句を効率的に連鎖するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。