その他 > その他 > 【質問】新規に作成したページから、商品登録している特定商品カテゴリーの商品を一覧表示したいです。 |
その他
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
Mative_Doi |
投稿日時: 2017/9/11 10:31
対応状況: −−−
|
新米 登録日: 2017/9/7 居住地: 投稿: 4 |
Re: 新規に作成したページから、商品登録している特定商品カテゴリーの商品を一覧表示したいです。 シロハチ様
お世話になっております。 早速ご回答頂きましてありがとうございます。 > /src/Eccube/Controller/ProductController.phpのfunction index() > の中では、$paginationが商品データですので、このあたりの記述を参考にされてみては如何でしょうか? 有益な情報を頂き、ありがとうございました! はい、まさに私も週末に同様の部分を参照しておりました。 ProductControllerのコントローラーから、最終的にProduct/list.twigに値を渡していること確認しました。 これと同じようなことを実現出来ればやりたいことが出来るのではないかと思います。 1)新たにコントローラーを作成。 2)新規追加するブロックへ値を渡してあげれば良いのかと思います。 3)新規追加ブロックを、各新規ページへレイアウトで組込み。 > 新規追加されたコントローラー側で、Productsを組み立ててtwigに渡していると思いますが、 > Productsはどのようにして生成されていますか? https://umebius.com/eccube/add_dynamic_block_programmatically/ こちらの記事を参考にしております。手順1のところです。 この記事内では、新着商品を5件表示するコントローラーの作成が紹介されておりましたので、 とりあえずは、こちらのコントローラーをそのまま利用してみました。 新着5件の商品登録情報を取得するコントローラ。 src/Eccube/Controller/Block/NewItemController -- namespace Eccube\Controller\Block; use Eccube\Application; use Symfony\Component\HttpFoundation\Request; class NewItemController { public function index(Application $app, Request $request) { $Products = $app['eccube.repository.product'] ->createQueryBuilder('p') ->orderBy('p.create_date', 'DESC') ->setMaxResults(5) ->getQuery() ->getResult(); return $app->render('Block/new_item.twig', array( 'Products' => $Products, )); } } -- こちらのコントローラーをそのまま利用し、 新規作成したブロックで新着商品5件を表示させるところまでは実現出来ました。 新規作成したブロック:new_item.twig -- <ul> {% for Product in Products %} <div id="result_list_box--{{ Product.id }}" class="col-sm-3 col-xs-6 list_item"> <div id="result_list__item--{{ Product.id }}" class="product_item"> <a href="{{ url('product_detail', {'id': Product.id}) }}"> <div id="result_list__image--{{ Product.id }}" class="item_photo"> <img src="{{ app.config.image_save_urlpath }}/{{ Product.main_list_image|no_image_product }}"> </div> <dl id="result_list__detail--{{ Product.id }}"> <dt id="result_list__name--{{ Product.id }}" class="item_name">{{ Product.name }}</dt> {% if Product.description_list %} {# ↓アイテムコメントコメントアウト↓ #} {# <dd id="result_list__description_list--{{ Product.id }}" class="item_comment">{{ Product.description_list|raw|nl2br }}</dd> #} {% endif %} {% if Product.hasProductClass %} {% if Product.getPrice02Min == Product.getPrice02Max %} <dd id="result_list__price02_inc_tax--{{ Product.id }}" class="item_price"> {{ Product.getPrice02IncTaxMin|price }} </dd> {% else %} <dd id="result_list__price02_inc_tax--{{ Product.id }}" class="item_price"> {{ Product.getPrice02IncTaxMin|price }} ~ {{ Product.getPrice02IncTaxMax|price }} </dd> {% endif %} {% else %} <dd id="result_list__price02_inc_tax--{{ Product.id }}" class="item_price">{{ Product.getPrice02IncTaxMin|price }}</dd> {% endif %} </dl> </a> </div> </div> {% endfor %} </ul> -- 本来実現したかったこと。 ProductControllerコントローラーと、list.twigのように、 http://(URL)/products/list?category_id=XX list?category_id=XX(カテゴリー番号) の値を受けとり、その情報を用いて、 特定カテゴリーの商品一覧のみを表示できるような、 コントローラーとブロックを作りたいです。 ブロックの方は、Products なり、paginationなり、 このままで利用出来そうなので、あとは、コントローラーさえ 作れてしまえば、やりたいことは実現出来そうです。 ただ、コントローラーを作れる力がございません。。 ご教授頂けますと、大変ありがたいです。m(_ _)m |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
【質問】新規に作成したページから、商品登録している特定商品カテゴリーの商品を一覧表示したいです。 | 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 |