当前位置: 技术文章>> 如何在Magento 2中按类别ID获取产品集合

文章标题:如何在Magento 2中按类别ID获取产品集合
  • 文章分类: Magento
  • 27770 阅读
系统学习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获取产品集合。


推荐文章