4
Magento 2-list.phtmlによるカスタム製品コレクションのレンダリング
カテゴリページ(フロントエンド)の製品グリッドは、catalog_category_view.xmlのレイアウトを介してレンダリングされます。 カスタム製品コレクションがあるとしましょう ProductRepositoryInterface::getList($searchCriteria) method カスタムブロッククラスで、このコレクションをレンダリングしたい。レンダリングされた結果は、フロントエンドに製品グリッドとして表示される必要があります(カテゴリページと同様)。 これはどのように行うことができますか? 調査catalog_category_view.xmlすると、製品コレクションのレンダリングを担当する2つの重要な行があります。 <block class="Magento\Catalog\Block\Category\View" name="category.products" template="Magento_Catalog::category/products.phtml"> <block class="Magento\Catalog\Block\Product\ListProduct" name="category.products.list" as="product_list" template="Magento_Catalog::product/list.phtml"> これらのテンプレートファイルにカスタム製品コレクションを提供して、コレクションをレンダリングするにはどうすればよいですか? 私がこれについて間違っている場合、私を修正してください。 これは私のブロックコードがどのように見えるかです: <?php namespace Mod\Mod1\Block; use Magento\Framework\View\Element\Template; class Main extends Template { protected $_filterBuilder; protected $_filterGroupArray; protected $_filterGroupBuilder; protected $_searchCriteriaBuilder; protected $_productRepository; protected $_productFactory; protected $_list; public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, …