質問 > フロント機能 > カテゴリにて、商品があるカテゴリのみ表示させたい |
フロント機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
tomaton20 |
投稿日時: 2023/10/1 17:52
対応状況: 解決済
|
新米 ![]() ![]() 登録日: 2023/9/8 居住地: 投稿: 4 |
Re: カテゴリにて、商品があるカテゴリのみ表示させたい 自己解決です。
$qb = $this->createQueryBuilder('c1') ->select('c1, c2, c3, c4, c5') ->leftJoin('c1.Children', 'c2') ->leftJoin('c2.Children', 'c3') ->leftJoin('c3.Children', 'c4') ->leftJoin('c4.Children', 'c5') ->orderBy('c1.sort_no', 'DESC') ->addOrderBy('c2.sort_no', 'DESC') ->addOrderBy('c3.sort_no', 'DESC') ->addOrderBy('c4.sort_no', 'DESC') ->addOrderBy('c5.sort_no', 'DESC'); /** * 絞り込みように追加 */ $qb2 = $this->createQueryBuilder('c')->from("Eccube\\Entity\\ProductCategory", 'pc')->select('pc.category_id')->andWhere('c.id = pc.category_id'); $qb->andWhere("c3.id IN ({$qb2->getDql()})"); とりえあえずのところ、3階層目まで必ずデータがあるパターンだったため、 3階層目をターゲットにし、商品がなければカテゴリを全て表示しない、 という形で解決としました。 |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
![]() |
tomaton20 | 2023/9/30 15:24 |
![]() |
mcontact | 2023/10/1 14:04 |
» ![]() |
tomaton20 | 2023/10/1 17:52 |
