关于Magento的快速发展,产品系列变得越来越重要。这是因为在各种项目中,通常需要在不同的过滤器和要求中进行产品收集。因此,在今天的文章中,我将向您展示可以帮助您在Magento 2中按类别进行产品收集的步骤。
如何按类别ID获取产品集合
- 第1步:创建Products.php块
- 第2步:在phtml文件中插入
- 第3步:刷新缓存和测试结果
第1步:创建Products.php块
为了按类别ID获取产品集合,您首先要做的就是创建Products.php
块。遵循这条道路:Mageplaza/HelloWorld/Block/Products.php
<?php
namespace Mageplaza\HelloWorld\Block;
class Products extends \Magento\Framework\View\Element\Template
{
/**
* @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory
*/
protected $_productCollectionFactory;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory
)
{
$this->_productCollectionFactory = $productCollectionFactory;
parent::__construct($context);
}
public function getProductCollectionByCategories($ids)
{
$collection = $this->_productCollectionFactory->create();
$collection->addAttributeToSelect('*');
$collection->addCategoriesFilter(['in' => ids]);
return $collection;
}
}
- 这
$ids
是一个数组,包括类别ID。 $_productCollectionFactory
是产品收集工厂的一个对象,用于收集产品型号。addCategoriesFilter
应用类别过滤器的功能。$collection
返回在给定类别中分配的产品集合。
第2步:在phtml文件中插入
完成上述步骤后,您将在块中有一个集合,现在要在块中获取Product集合,请按照以下代码段操作: Mageplaza/HelloWorld/view/frontend/templates/list.phtml
$ids = [1,2,3];
$categoryProducts = $block->getProductCollectionByCategories($ids);
foreach ($categoryProducts as $product) {
echo $product->getName() . ' - ' . $product->getProductUrl() . '<br />';
}
第3步:刷新缓存和测试结果
现在,让我们刷新缓存和测试结果。
结论
以上是三个步骤,可以帮助您在Magento 2中收集产品。我希望这篇文章在获得产品收集时对您有所帮助