Как удалить атрибуты, которые добавляются через «-> addAttributeToFilter ()» из коллекции в Magento - PullRequest
2 голосов
/ 22 февраля 2012

Рассмотрим приведенный ниже код:

$productCollection123 = Mage::getModel('catalog/product')->getCollection()
    ->addStoreFilter(Mage::app()->getStore())
    ->addAttributeToFilter('type_id', array('eq' => 'simple'))
    ->addAttributeToFilter('color',5);

, поэтому результирующее число равно count($productCollection123) = 57, теперь можно сделать removeAttributeFromFilter, чтобы удалить условие 'color'=5 из текущего результата сбора?

Примечание: не должно снимать условие 'type_id'='simple'

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

Нет, вам нужно создать новый запрос. Как только вы попали в БД с запросом с условиями, вы не можете просто удалить условие и получить новые данные, вам нужно создать новый запрос.

1 голос
/ 22 февраля 2012

Стандартный Afaik Magento не имеет методов явного удаления фильтров (кроме clear(), который сбрасывает все фильтры и выгружает коллекцию).

И, честно говоря, удалять его не имеет особого смыслафильтры после того, как коллекция уже была загружена.По крайней мере, для меня.

Единственное, что мне приходит в голову, - это создать коллекцию с минимальными фильтрами (ваш второй), затем clone и расширить клон с максимальными фильтрами (ваш первыйone).

Это сэкономит вам несколько строк кода, но не будет удобочитаемостью / ремонтопригодностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...