Magento 按组加载产品属性?
Posted
技术标签:
【中文标题】Magento 按组加载产品属性?【英文标题】:Magento load product attributes by group? 【发布时间】:2014-05-29 20:11:44 【问题描述】:有没有办法进入 foreach 循环并遍历 Magento 属性组中的所有产品属性?请检查屏幕截图。例如,我只想遍历设计组属性中的值。
https://s3.amazonaws.com/uploads.hipchat.com/62230/429611/8EOCq5jqCKVUkJR/Screen%20Shot%202014-05-29%20at%204.10.10%20PM.png
谢谢
【问题讨论】:
【参考方案1】:不,没有内置函数可以返回按组组织的产品属性数组。这是缺少的功能之一。您需要自己在帮助程序或块类中创建它。
[编辑]
看来我错了。有一种方法可以返回给定组的属性。它位于Mage_Catalog_Model_Product::getAttributes()
。第一个参数是组 ID。所以你可以这样做:
$groupId = Mage::getModel('eav/entity_attribute_group')->getCollection()
->addFieldToFilter('attribute_set_id', array('eq' => $_product->getAttributeSetId()))
->addFieldToFilter('attribute_group_name', array('eq' => 'General'))
->getFirstItem()->getId();
foreach($_product->getAttributes($groupId) as $attribute)
//this will return text value even for multiselect
$attributeVal = $attribute->getFrontend()->getValue($_product);
//or but you need to handle retriving select and multiselect labels
$attributeVal = $_product->getData($attribute->getCode());
这使得从组中获取属性变得更容易,但我认为它仍然需要自己的帮助程序,或者更好的是,自己的块,因为 phtml 文件中的那段代码不是最佳实践。
【讨论】:
以上是关于Magento 按组加载产品属性?的主要内容,如果未能解决你的问题,请参考以下文章