在 Magento 2 中如何根据类别 ID 获取产品集合
今天我们将介绍一个简短但有用的教程,介绍如何在 Magento 2 中通过类别 ID 获取产品集合。这是一种获取产品集合的快速方法,可以为商店管理员和客户节省大量配置时间。这就是为什么您可能会看到在线商店中的客户需要它。
随着Magento的快速发展,产品集合变得越来越重要。这是因为,在不同的项目中,不同的过滤器和需求通常需要产品集合。现在让我们了解一下产品集合以及如何在 Magento 2 中通过类别 ID 获取它。
**如何通过类别 ID 分 3 步获取产品集合:**
- 第 1 步:创建 Products.php 块
- 第 2 步:插入phtml文件
- 第 3 步:刷新缓存和测试结果
现在请按照以下步骤及时完成工作。您不需要更改核心代码。
第 1 步:创建 Products.php 块
为了按类别 ID 获取产品集合,您要做的第一件事就是创建Products.php
块。遵循以下路径:Example/HelloWorld/Block/Products.php
<?php
namespace Example\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 集合,请按照以下代码片段操作:Example/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 步:刷新缓存和测试结果
现在,让我们刷新缓存并测试结果。
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。