Laravel5のQueryBuilderは非常に便利ですが、複雑なwhere条件を書こうとするとwhereRawに頼ってしまいがちです。

しかし可読性を保つためなるべくwhereやorWhereで書いた方が良いと思います。

単純なAnd検索であれば、

$query->where('column1', '=', $value1)
->where('column2', '=', $value2)

単純なOr検索であれば、

$query->where('column1', '=', $value1)
->orWhere('column2', '=', $value2)

 

しかし、Laravel5を始めたばかりの人が必ず悩むのが(A or B) and (C or D)の条件です。

こういった複合系は次のようにクロージャで書けます。

$query->where(function($query) use($value1, $value2){
    $query->where('column1', '=', $value1)
          ->orWhere('column2', '=', $value2)
});

$query->where(function($query) use($value3, $value4){
    $query->where('column1', '=', $value3)
          ->orWhere('column2', '=', $value4)
});

useを使ってクロージャへ変数を渡してやるのがポイントです。

EC-CUBEの解説本

EC-CUBE4の使用方法が詳しく解説されています。ショップオーナー、運用を任せられている方向けの本で、カスタマイズ向きではありません。どのような設定があるのか、管理画面の操作方法を知りたい人は必須の一冊です。

EC-CUBE4をカスタマイズする方必読

EC-CUBEはSymfonyをベースに作られており、EC-CUBE4のカスタマイズにはSymfomyの学習を避けて通れません。弊社ではまずこの本を読むよう薦めています。