系统学习magento二次开发,推荐小册:《Magento中文全栈二次开发 》
本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。
在Magento 2中按类别ID获取产品集合的步骤:
方法 1:使用类
在我们的自定义扩展
上创建一个块文件,在以下路径中添加块名.php
app\code\Vendor\Extension\Block\Blockname.php
现在添加以下代码
<?php namespace Vendor\Extension\Block; use Magento\Framework\View\Element\Template; class Blockname extends Template { protected $categoryFactory; public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Catalog\Model\CategoryFactory ) { $this->categoryFactory = $CategoryFactory; parent::__construct($context); } public function getProductCollectionFromCategory($categoryId) { $category = $this->categoryFactory->create()->load($categoryId); return $category->getProductCollection()->addAttributeToSelect('*'); } }
在此之后,您需要 phtml 文件并将以下代码添加到文件中:
$block->getProductCollectionFromCategory(4); // YOUR CATEGORY ID foreach ($categoryProducts as $product) { // get Product data print_r($product->getData()); echo $product->getName(); }
方法 2:使用对象管理器
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $categorysFactory = $objectManager->get('\Magento\Catalog\Model\CategoryFactory'); $categoryId = 4; // YOUR CATEGORY ID $category = $categorysFactory->create()->load($categoryId); $categoryProducts = $category->getProductCollection() ->addAttributeToSelect('*'); foreach ($categoryProducts as $product) { // get Product data print_r($product->getData()); echo $product->getName(); }
注意:使用ObjectManager进行Magento开发不被我们和Magento推荐。这只是为了内识目的。
小结:
因此,在实施上述步骤后,您将能够轻松地在Magento 2中按类别ID获取产品集合。