我正在试图弄清楚如何从Magento的过滤器列表中获取属性代码。
<?php
$_filters = $this->getFilters();
foreach ($_filters as $_filter)
{
echo $this->__($_filter->getName());
echo $this->__($_filter->getAttributeCode()); # color_name
}
?>
getAttributeCode()不是方法。 我想为app / design / frontend / default / default / template / catalog / layer / view.phtml中 attribute_code 的每个过滤器指定一个CSS类名。
答案 0 :(得分:14)
以下内容可行:
foreach($filters as $_filter)
{
$attributeModel = $_filter->getAttributeModel();
if($attributeModel) {
echo $attributeModel->getAttributeCode();
}
}
这里的关键是检查过滤器实际上是一个属性,因为有些不是(最常见的是类别),这些类型的过滤器显然不会有属性代码。
答案 1 :(得分:3)
注意是否要在/catalog/layered/state.phtml中使用此代码段;请使用
$attributeModel = $_filter->getFilter()->getAttributeModel();
而不是
$attributeModel = $_filter->getAttributeModel();