LoginSignup
0
0

More than 1 year has passed since last update.

【Laravel】脱同じ条件式~クエリスコープを用いてSQLの条件式をメソッドのように分ける

Last updated at Posted at 2021-07-16

はじめに

PHP及びLaravelにて、DBから値を取得する際に複数のWHERE句を1つのメソッドのようにまとめる方法を以下に記載する。

結論

以下ルールに則ることでメソッドと同じように利用が可能。
* 先頭にscopeを付与する
* 呼び出す際にはscopeを除外する

/ **
* 20歳以上の男性の名前を取得する
*/
public function getAdultMaleName()
{
    return $this->
        select('userName',)
        ->isAdultMale()
        ->get();
}

private function scopeIsAdultMale($query)
{
    return $query
        ->where('age', '>=', 20)
        ->where('gender', '=', 1);
}

0
0
0

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
0
0