有没有办法进入foreach循环并遍历Magento中属性组中的所有产品属性?请检查截图。例如,我只想循环设计组属性中的值。
由于
答案 0 :(得分:2)
没有没有内置函数会返回由group组织的产品属性数组。这是缺少的功能之一。您需要在帮助程序或块类中自己创建它。
[编辑]
看起来我错了。有一种方法可以返回给定组的属性。它位于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文件中的那段代码不是最佳实践。