2011-01-25 106 views
0

在Mage_Catalog_Block_Layer_View中有一個名爲$ _filters的變量,它循環顯示$ _filter var中的屬性。每當我嘗試var轉儲這個變量,我的服務器就會拋出一個錯誤。這種行爲是完全神祕的。有誰知道我是否可以回到屬性代碼?我想要做這樣的事情:訪問過濾var屬性?

$_filter->getAttribute()->getAttributeCode(); 

回答

1


你試過$_filter->getAttributeModel()->getAttributeCode()

+0

bingo!像魅力一樣工作..謝謝! – Chris 2011-01-26 14:27:53

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()