Доступ к фильтру var атрибут? - PullRequest
0 голосов
/ 26 января 2011

В Mage_Catalog_Block_Layer_View есть переменная с именем $ _filters, которая перебирает и отображает свойства в переменной $ _filter. Всякий раз, когда я пытаюсь сделать дамп этой переменной, мой сервер выдает ошибку. Такое поведение совершенно загадочно. Кто-нибудь знает, могу ли я вернуться к коду атрибута? Я хотел бы сделать что-то вроде этого:

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

Ответы [ 2 ]

1 голос
/ 26 января 2011


Вы пробовали $_filter->getAttributeModel()->getAttributeCode()?

0 голосов
/ 26 января 2011
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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...