Magento addAttributeToFilter не работает так, как мне кажется - PullRequest
2 голосов
/ 28 февраля 2011

У меня есть атрибут продукта, для которого я установил область действия для веб-сайта (поэтому теоретически он будет отличаться для каждого определенного веб-сайта).

Однако по какой-то причине, когда я использую его в addAttributeToFilter (), онкажется, игнорировать это.

Позвольте мне показать вам код, который я использую:

$total_products_obj = Mage::getModel('catalog/product')
  ->getCollection()
  ->addAttributeToSelect('*')
  ->addAttributeToFilter('discontinued', array('neq' => 1) )
  ->addAttributeToFilter('video_url', array('notnull' => '') );

Атрибут, с которым у меня возникли проблемы, это атрибут video_url.Как я уже сказал, для области действия установлено значение «Веб-сайт», где прекращено использование атрибута «Глобальный».

Я мало что сделал с атрибутами веб-сайта, есть ли что-то еще, что мне нужно сделать, чтобы этот атрибут не игнорировался?Прямо сейчас я получаю коллекцию всех продуктов, которые сняты с производства не равен 1.

Ответы [ 2 ]

4 голосов
/ 12 августа 2011

Я нашел обходной путь.Вместо этого используйте версию метода в виде массива, действительно предназначенную для создания условия «ИЛИ».Это генерирует правильный SQL.

Например,

->addAttributeToFilter( array( array( 'attribute'=>'video_url', 'notnull' => '' ) ))

Это немного уродливо, но позволяет вам все еще использовать плоский каталог.

0 голосов
/ 31 мая 2011

Я отключил Использовать плоский каталог товаров, и он начал работать как положено.

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