Magento2获得产品系列

wer*_*erd 2 php magento2

我试图获取所有商店视图特定的产品属性值(实际过滤的列表,但这是不相关的)产品,如下所示:

<?php

/* @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $collectionFactory */
$collection = $collectionFactory->create()->setStoreId(3)->load();

foreach ($collection as $product) {
    var_dump($product->getSku());
    var_dump($product->getName());
}
Run Code Online (Sandbox Code Playgroud)

SKU按预期返回(因为它是一般的)但产品名称不是 - 而是NULL返回.

它在使用构建器的 adminhtml产品编辑控制器中工作正常.唯一的区别是编辑控制器与模型一起工作; 由于某种原因收集的作品.尝试在循环中加载每个产品(这是在编辑控制器中完成的方式) - 这样做会返回相应的值(但是我无法获得其他相关的产品属性).当然在环路中再次装载产品是错误的.Model\ProductModel\Product\InterceptorModel\ProductFactory$product->getName()

所以问题是:对于给定的商店视图,检索产品和获取产品属性(描述,重量等)值的预期方式是什么?

Ash*_*tel 8

<?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>';
}  

?>
Run Code Online (Sandbox Code Playgroud)

  • @thdoan为了让你随机,你需要添加$ collection-> getSelect() - > order('rand()').要将它限制为6然后接下来你可以添加$ collection-> setPageSize(6); //仅获取6 (3认同)