EC-CUBEにて、以下の状態の時に提示したSQLを作成し実行したところ、意図した結果が得られませんでした。
わかる方がいれば、ご教示いただければ幸いです。
【作成したSQL】
'query_builder' => function(EntityRepository $er) use($name) {
return $er->createQueryBuilder('ca')
->where('ca.id = :Id')
->setParameter('Id', 1)
->orWhere('ca.Parent = :pId')
->setParameter('pId', 1)
->andWhere('ca.name = :name')
->setParameter('name', $name)
->orderBy('ca.rank', 'DESC');
}
※$nameは別で取得していて正しいのが取れていることは確認済み
【実現したい結果】
EC-CUBEのカテゴリとして以下のように定義
食器販売
・店舗A
・店舗C
インテリア販売
・店舗B
・店舗C
実行した際に、ログインしている店舗名を$nameで取得していて
ログインが店舗Aの場合
カテゴリ選択に
食器販売
店舗A
と表示される。
【現在の状況】
店舗A
としか表示されない。
デバッグした際に、
where句のor条件同士で()で括られ、その外側にand条件が付いていました。
where句3つの場合が今回対応しているのがはじめてなためわからないのですが、where句が3つ以上でこのようなことになってしまうのでしょうか?andとorが組み合わさっているためでしょうか?
回避する方法(実現させるための方法)はあるでしょうか?
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。