【发布时间】:2011-05-16 12:55:13
【问题描述】:
我在 Magento CMS 上遇到了这样的问题。我需要检索所有制造商的类别。 乍一看这不是问题,因为有一个过滤器块和层导航,您可以从中获取必要的方法。
首先我在重新定义的类别模型/app/code/local/Mage/ Catalog/Model/Category.php中创建了一个公共方法
public function getManufacturers()
{
$collection = Mage::getResourceModel('catalog/product_attribute_collection')
->setItemObjectClass('catalog/resource_eav_attribute');
$setIds = $this->getProductCollection()->getSetIds();
$collection->getSelect()->distinct(true);
$collection
->setAttributeSetFilter($setIds)
->addStoreLabel(Mage::app()->getStore()->getId())
->setOrder('position', 'ASC');
$collection->addIsFilterableFilter();;
$collection->load();
return $collection;
}
我在类别模板中调用这个方法:
$manufscturers = $_category->getManufacturers();
所以我们得到了一个巨大的对象Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Collection。
然后:
$items = $manufscturers->getItems();
我们得到对象Mage_Catalog_Model_Resource_Eav_Attribute。
那我不知道该怎么办了。那是一个死胡同。也许是错误的方式?
Magento 的版本 - 1.4.0.1
感谢您的帮助!
【问题讨论】:
-
你必须得到所有的id(已经有这个)并查询属性产品关系
-
我需要用对象 Mage_Catalog_Model_Resource_Eav_Attribute 来做吗?
标签: magento attributes categories magento-1.4