LoginSignup
17
12

More than 1 year has passed since last update.

laravel クエリビルダ whereInを使って賢く取得情報を絞ろう

Last updated at Posted at 2021-06-17

目的

  • クエリビルダにて「Aカラムの値が〇〇、もしくは✕✕の情報を取得する」命令を記載する際、orWhere()メソッドではなくwhereIn()メソッドを使って記載を短縮する方法をまとめる

ご注意

  • 下記の説明で直接ソースコード上に数字をハードコーディング(いわゆるマジックナンバー)されているが、これはアンチパターンである。
  • 本来このような書き方は避けたほうが良いが説明のために致し方なく記載する。
  • 本当は定数を記載するファイルやconstなどを用いてその数字の意味を記載してあげてほしい。

情報

  • 下記のように記載されたクエリビルダがあるとする。
  • これはusersテーブルのstatus_idが2か3のレコードを取得するクエリビルダである。
  • この書き方でも問題ないが、同じカラムに対しての条件でorWhere()メソッド以外の選択肢もある。
$query
    ->where( 'users.status_id', '=', 2 )
    ->orWhere( 'users.status_id', '=', 3 );

方法

  • whereIn()メソッドを使って下記のように記載する事ができる。
  • whereIn( '判定したいテーブル名.判定したいカラム名', [判定したいカラム名の値として期待されるものを配列状に記載する])のように記載する。
$query->whereIn( 'users.status_id', [2, 3] );

参考文献

17
12
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
12