Magento 获取未加载所有属性的相关产品
Magento get related products not having all attributes loaded
我在接手一个项目,看到之前的开发者添加了自定义相关的产品关联。所以他实现了一个函数来让关联的集合看起来像这样
/**
* Retrieve collection CustomRelated product
*
* @return Mage_Catalog_Model_Resource_Product_Link_Product_Collection
*/
public function getCustomRelatedProductCollection()
{
$collection = $this->getLinkInstance()->useCustomRelatedLinks()
->getProductCollection()
->setIsStrongMode();
$collection->setProduct($this);
return $collection;
}
然后在 phtml 文件中,他是这样调用的
$upsell_products = $_product->getCustomRelatedProductCollection();
然后他在 foreach 中使用该集合,集合中的每个元素都使用模型 'catalog/product',但不知何故它没有加载足够的属性,如价格和名称
只有当我像这样再次调用加载函数时,它才会加载所有属性
Mage::getModel('catalog/product')->load($p->getId())
我不想这样做,因为重新加载模型毫无意义,我还是 Magento 的新手,所以我不确定如何制作上面的 get 集合来完全加载产品模型,任何想法?
您可以加载需要的属性(名称、价格),如下所示。
public function getCustomRelatedProductCollection()
{
$collection = $this->getLinkInstance()->useCustomRelatedLinks()
->getProductCollection()
->addAttributeToSelect(array("name", "price"))
->setIsStrongMode();
$collection->setProduct($this);
return $collection;
}
//我在你的代码中添加了新行。请立即查看。
public function getCustomRelatedProductCollection()
{
$collection = $this->getLinkInstance()->useCustomRelatedLinks()
->getProductCollection()
->setIsStrongMode();
$collection->setProduct($this);
$collection->addAttributeToSelect('*'); //New line added by me.
return $collection;
}
我在接手一个项目,看到之前的开发者添加了自定义相关的产品关联。所以他实现了一个函数来让关联的集合看起来像这样
/**
* Retrieve collection CustomRelated product
*
* @return Mage_Catalog_Model_Resource_Product_Link_Product_Collection
*/
public function getCustomRelatedProductCollection()
{
$collection = $this->getLinkInstance()->useCustomRelatedLinks()
->getProductCollection()
->setIsStrongMode();
$collection->setProduct($this);
return $collection;
}
然后在 phtml 文件中,他是这样调用的
$upsell_products = $_product->getCustomRelatedProductCollection();
然后他在 foreach 中使用该集合,集合中的每个元素都使用模型 'catalog/product',但不知何故它没有加载足够的属性,如价格和名称
只有当我像这样再次调用加载函数时,它才会加载所有属性
Mage::getModel('catalog/product')->load($p->getId())
我不想这样做,因为重新加载模型毫无意义,我还是 Magento 的新手,所以我不确定如何制作上面的 get 集合来完全加载产品模型,任何想法?
您可以加载需要的属性(名称、价格),如下所示。
public function getCustomRelatedProductCollection()
{
$collection = $this->getLinkInstance()->useCustomRelatedLinks()
->getProductCollection()
->addAttributeToSelect(array("name", "price"))
->setIsStrongMode();
$collection->setProduct($this);
return $collection;
}
//我在你的代码中添加了新行。请立即查看。
public function getCustomRelatedProductCollection()
{
$collection = $this->getLinkInstance()->useCustomRelatedLinks()
->getProductCollection()
->setIsStrongMode();
$collection->setProduct($this);
$collection->addAttributeToSelect('*'); //New line added by me.
return $collection;
}