[解決済み] Laravel Eloquentを使用して複数のWhere句クエリを作成する方法?
2022-03-18 04:22:35
質問
Laravel Eloquentクエリビルダを使っているのですが、クエリに
WHERE
節を複数の条件で指定します。それは動作しますが、それはエレガントではありません。
例
$results = User::where('this', '=', 1)
->where('that', '=', 1)
->where('this_too', '=', 1)
->where('that_too', '=', 1)
->where('this_as_well', '=', 1)
->where('that_as_well', '=', 1)
->where('this_one_too', '=', 1)
->where('that_one_too', '=', 1)
->where('this_one_as_well', '=', 1)
->where('that_one_as_well', '=', 1)
->get();
もっと良い方法があるのでしょうか、それともこの方法でいくべきなのでしょうか?
どのように解決するのですか?
で Laravel 5.3 (現在もそうですが 7.x を使用すると、配列として渡されたより詳細なwhereresを使用することができます。
$query->where([
['column_1', '=', 'value_1'],
['column_2', '<>', 'value_2'],
[COLUMN, OPERATOR, VALUE],
...
])
個人的には、マルチプル以上の用途は見いだせません。
where
を呼び出すことができますが、実際には使用することができます。
2014年6月より、配列を渡すことができるようになりました。
where
を全て欲しいと思っている限りは
wheres
使い道
and
オペレータは、このようにグループ化することができます。
$matchThese = ['field' => 'value', 'another_field' => 'another_value', ...];
// if you need another group of wheres as an alternative:
$orThose = ['yet_another_field' => 'yet_another_value', ...];
それから。
$results = User::where($matchThese)->get();
// with another group
$results = User::where($matchThese)
->orWhere($orThose)
->get();
上記でこのようなクエリになります。
SELECT * FROM users
WHERE (field = value AND another_field = another_value AND ...)
OR (yet_another_field = yet_another_value AND ...)
関連
-
[解決済み】接続の取得に失敗しました: php_network_getaddresses: getaddrinfo failed: 名前またはサービスが不明
-
[解決済み] libapache2-mod-php7 パッケージの場所がわからない
-
[解決済み] クエリビルダーのSQLクエリを文字列として出力するにはどうすればよいですか?
-
[解決済み] Laravel Eloquent クエリ WHERE を OR AND OR で使用する?
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
-
[解決済み】Laravel Bladeのテンプレートに変数を設定する方法
-
[解決済み】Laravel 4で複数のカラムにOrder Byを使用する方法?
-
[解決済み】Laravel Eloquent。all()の結果の順序付け
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
-
[解決済み] Laravelで実行されたクエリを取得する 3/4
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】PHP定数「PHP_EOL」はいつ使うの?
-
[解決済み】変な電話番号を生成するフェイカー?
-
[解決済み】 PHP 未定義関数の呼び出し
-
[解決済み】新しいPHPMailerはPHPMailerAutoload.phpが必要?
-
[解決済み】Apache + PHPで「ヘッダの前にスクリプトの出力が終了する」件
-
[解決済み】警告。数値でない値に遭遇しました
-
[解決済み】MySQLのカラム数が1行目の値数と一致しない【非公開
-
[解決済み】mysqli::query(): mysqli をフェッチできない
-
[解決済み] libapache2-mod-php7 パッケージの場所がわからない
-
[解決済み] Laravel Eloquent クエリ WHERE を OR AND OR で使用する?