ユアマイスター株式会社エンジニアブログ

ユアマイスター株式会社のエンジニアが日々徒然。

cakephpクエリービルダー where,andWhere,orWhereの使い方

クエリービルダーとは

クエリービルダーは言葉通りクエリーを組み立てるもの(クラス)。

では、queryとは
簡単に言えば「条件」のこと。
クエリパラメーターも条件を指定して、リクエスト送ります。 テーブルのqueryでは、
例えばbooksテーブルからデータを取って来たい時にbooks classがある。
queryも同じようにquery objectを取得するために query classがcakePhpの中にあります。

f:id:yourmystar_engineer:20170714213002p:plain

where, orWhere, andWhere

where、orWhere、andWhereでは複数な条件を指定して、値を取得することができます。

public function findByUserIdsAndAreaGroupId(Query $query, $option) {
    $query    
        -> where(['user_id' => 1 ])
        // useridが1のもの
        ->orWhere(['user_id => 2 '])
        //もしくはuseridが2のものを取得
        ->andwhere(['area_group' => $option['area_group']]);
        //引数で渡って来たarea_groupがDBのarea_groupと一致しているもの
    return $query;

わかりづらいのはwhereメソッドとandWhereメソッド。
何が違うのか..?と思いますが、動作は、条件を置き換えるのでなく追加するという点を除いて、where() とほとんど同じです。