如何在Magento 2中按类别获取产品集合

关于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中收集产品。我希望这篇文章在获得产品收集时对您有所帮助

相关文章

0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论