【问题标题】:How to get model and product collection in magento 2如何在 magento 2 中获取模型和产品集合
【发布时间】:2016-01-12 10:01:35
【问题描述】:

如何在 magento 2 中加载模型 喜欢

Mage::getModel('catalog/product')->load()

就像我们以前在 magento 1 中一样。

【问题讨论】:

    标签: magento2


    【解决方案1】:

    建议使用依赖注入而不是直接使用对象管理器。例子: 在您的块文件中,您可以使用以下代码返回产品集合:

    public function __construct(
            \Magento\Framework\View\Element\Template\Context $context,
            \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
            array $data = []
        ) {
    
            $this->_productCollectionFactory = $productCollectionFactory;
            parent::__construct($context, $data);
        }
    public function getProductCollection()
        {
            $collection = $this->_productCollectionFactory->create();
            return $collection;
        }
    

    【讨论】:

    • 这是使用依赖注入的正确方法。 +1
    • 嗨@Manashvi,我想感染这些产品/缓存/1d4ec593232a3f40f7a929d5b10820a2/u/g/ug03-bk-0.jpg 图片
    • @shivashankarm 首先,为什么?它在缓存中,如果您清除缓存,则 URL 已更改,其他所有内容也已更改。我怀疑你现在已经想到了这一点,但你不应该引用存储在缓存中的图像
    【解决方案2】:

    试试这个以获取所有产品集合

    <?php
    
    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    
    $productCollection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\CollectionFactory');
    
    $collection = $productCollection->create()
                ->addAttributeToSelect('*')
                ->load();
    
    foreach ($collection as $product){
         echo 'Name  =  '.$product->getName().'<br>';
    }  
    
    ?>
    

    【讨论】:

    • create('Magento\Catalog\Model\Product')->load($productId);回声 $currentproduct->getName(); ?>
    • 它返回 []。为什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多