我試圖讓商店視圖具體產品屬性值對所有(實際過濾列表,但是這無關緊要)同類產品這樣:按預期的方式返回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());
}
SKU(因爲它是通用反正)但產品名稱不是 - 而是返回NULL
。
它在adminhtml產品中正常工作編輯controller其中使用builder。唯一的區別是編輯控制器使用Model\Product
模型;由於某種原因收集與Model\Product\Interceptor
一起使用。 已嘗試使用Model\ProductFactory
(這是如何在編輯控制器中完成的)加載循環中的每個產品 - 這樣做$product->getName()
返回相應的值(但我無法獲得其他相關產品屬性)。在循環中再次加載產品是錯誤的。
因此問題:對於給定的商店視圖,檢索產品和獲取產品屬性(描述,重量等)值的預期方式是什麼?
Sku是靜態屬性,這意味着它在'catalog_product_entity'表中。由於您正在創建集合,因此不會添加其他屬性。您可能關閉了產品的平板電腦,這就是爲什麼不添加任何屬性的原因。嘗試在load()之前添加' - > addAttributeToSelect('name')'' – Zefiryn
@Zefiryn謝謝 - 這就是訣竅。 '使用平面目錄產品'配置值默認爲'No' – werd