在Mage_Catalog_Block_Layer_View中有一个名为$ _filters的变量,它循环并显示$ _filter var中的属性。每当我尝试var转储此变量时,我的服务器都会抛出错误。这种行为是完全神秘的。有谁知道我是否可以回到属性代码?我想做这样的事情:
$_filter->getAttribute()->getAttributeCode();
答案 0 :(得分:1)
你试过$_filter->getAttributeModel()->getAttributeCode()
吗?
答案 1 :(得分:0)
public function getFilters()
{
$filters = array();
if ($categoryFilter = $this->_getCategoryFilter()) {
$filters[] = $categoryFilter;
}
$filterableAttributes = $this->_getFilterableAttributes();
foreach ($filterableAttributes as $attribute) {
$filters[] = $this->getChild($attribute->getAttributeCode().'_filter');
}
return $filters;
}
您可以看到此数组的变量设置发生的位置以及此类中属性代码的使用方式。请注意,这是一个包含视图对象而不是对象本身的数组,并且抛弃所有这些只会占用服务器内存。当然,你不能在这个数组上调用方法。
所以没有实际的方法可以从这个数组中获取这些代码,你可能在模板或子对象级别上取得了更大的成功,或者如果你需要在同一个类中使用它,你可以从$ this-> _getFilterableAttributes获得过滤器()方法或者您可以尝试迭代每个过滤器数组成员及其子成员
$filters['0']->getItems()