1

在扩展中,我在 catalog_product_view 页面上获得了产品集合,如下所示:

if (!$product = Mage::registry('product')) {
    return new Varien_Data_Collection();
}
$category = new Mage_Catalog_Model_Category();
$category->load($product->getCategoryId());
$collection = $category->getProductCollection();

以及如何向此集合添加其他属性?

例如我不能得到这样的东西

$collection->addAttributeToSelect('manufacturer');

我希望通过代码添加一些属性(不是id,因为这可能是布局中添加的不同属性),然后按此属性对数据进行分组

谢谢

4

2 回答 2

1

您可以实例化产品集合并对其进行过滤,而不是直接获取特定类别的产品:

if (!$product = Mage::registry('product')) {
    return new Varien_Data_Collection();
}
// get a product collection and filter it by category
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addCategoryFilter($product->getCategoryId());
// add the attributes you need
$collection->addAttributeToSelect('manufacturer');
$collection->setOrder('manufacturer', 'asc');
// load the collection and return it
$collection->load();
return $collection;

注意:加载后不能将属性添加到集合中!此外,您不必显式调用load()- 集合将按需加载。

希望这可以帮助。

于 2012-05-19T10:39:44.310 回答
0

尝试这个

<?php echo $_product->getResource()->getAttribute('manufacturer')->getFrontend()->getValue($_product); ?>
于 2012-11-09T05:20:58.420 回答