その他 > その他 > 【質問】新規に作成したページから、商品登録している特定商品カテゴリーの商品を一覧表示したいです。 |
その他
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
468 |
投稿日時: 2017/9/12 14:31
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 新規に作成したページから、商品登録している特定商品カテゴリーの商品を一覧表示したいです。 弊社で商品一覧ブロックを追加するプラグインを開発中だったりするので、ちょっと答えづらい部分もあるのですが、
(こういったパターンでの利用を想定していましたので・・・) コントローラー側の以下の箇所に、カテゴリによる絞込みを追加する必要があると思います。
カテゴリの絞込みは、通常の商品一覧でも処理されており、 /src/Eccube/Repository/ProductRepository.php function getQueryBuilderBySearchData()の中身が参考になるのではないかと思います。
ちょっとややこしいのが、 Categoryエンティティを条件として利用している事と 商品とカテゴリの関係が格納されているのがProductCategoryだと思います。 流れとしては、 1.リクエストからcategory_idを取得して、 $categoryId = $request->query->get('category_id'); ↑多分これで取得できると思いますが・・・。 2.category_idでCategoryオブジェクトを取得 $Category = $app['eccube.repository.category']->find($categoryId); 3.2で取得したCategoryオブジェクトで商品を検索 $Products = $app['eccube.repository.product'] ->createQueryBuilder('p') ※下に挿入 ->innerJoin('p.ProductCategories', 'pct') ->innerJoin('pct.Category', 'c') ->andWhere('pct.Category = :Category') ->setParameter('Category', $Category) ※上に挿入 ->orderBy('p.create_date', 'DESC') ->setMaxResults(5) ->getQuery() ->getResult(); こんな感じではないでしょうか? (商品一覧の処理では、複数カテゴリにも対応できるようにin句を利用しているようですが、 カテゴリが1つだけの場合、in句は不要かと思います)
|
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
【質問】新規に作成したページから、商品登録している特定商品カテゴリーの商品を一覧表示したいです。 | Mative_Doi | 2017/9/7 13:10 |
Re: 新規に作成したページから、商品登録している特定商品カテゴリーの商品を一覧表示したいです。 | Mative_Doi | 2017/9/9 23:55 |
Re: 新規に作成したページから、商品登録している特定商品カテゴリーの商品を一覧表示したいです。 | 468 | 2017/9/10 20:56 |
Re: 新規に作成したページから、商品登録している特定商品カテゴリーの商品を一覧表示したいです。 | Mative_Doi | 2017/9/11 10:31 |
» Re: 新規に作成したページから、商品登録している特定商品カテゴリーの商品を一覧表示したいです。 | 468 | 2017/9/12 14:31 |
Re: 新規に作成したページから、商品登録している特定商品カテゴリーの商品を一覧表示したいです。 | Mative_Doi | 2017/9/12 23:46 |