質問 > フロント機能 > カテゴリにて、商品があるカテゴリのみ表示させたい |
フロント機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
tomaton20 |
投稿日時: 2023/9/30 15:24
対応状況: −−−
|
新米 ![]() ![]() 登録日: 2023/9/8 居住地: 投稿: 4 |
カテゴリにて、商品があるカテゴリのみ表示させたい ▼テンプレート
[EC-CUBE] 4 [レンタルサーバ] なし [OS] aluma linux [PHP] 8.2 [データベース] maria db 10 [WEBサーバ] apache 2 [ブラウザ] chrome 現在、カテゴリは登録したものが全て表示される仕組みですが、 これを大、中、小、カテゴリ全てにおいて、商品がある場合のみ、 そのカテゴリを表示させたいと考えています。 デフォルトのCategoryRepository.phpでの、 getListメソッドでカテゴリを出力させているようですが、 こちらをどのようにすれば商品のみに絞り込むことが可能になりますか? プレーンなsqlであれば、dtb_product_categoryテーブルをeq句にて、 サブクエリを発行すればよいかと思います。 現状のgetListメソッドでは、 $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'); という形にて、カテゴリ用のリストを生成しておりますが、 ここにandWhereを新たに追加し、 $qb2 = $this->getRepository('Eccube\Entity\ProductCategory')->createQueryBuilder('pc')->select('pc.category_id'); $qb->andWhere($qb->expr()->eq('c1.id', $qb2->getDql())); というような条件を追加したいと考えております。 ちなみにこのパターンだとエラーとなります。 ECCUBE自体がど素人なため、どなたかご教授いただければ幸いです。 よろしくお願い致します。 |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» ![]() |
tomaton20 | 2023/9/30 15:24 |
![]() |
mcontact | 2023/10/1 14:04 |
![]() |
tomaton20 | 2023/10/1 17:52 |
![](images/pixel.gif)