Фильтровать коллекцию Magento

Я хотел бы отфильтровать коллекцию с помощью сгруппированных предложений. В SQL это будет выглядеть примерно так:

SELECT * FROM `my_table` WHERE col1='x' AND (col2='y' OR (col2='z' and col4='P' and col5='q') OR (col2='x' and col4='r'))

Как я могу «перевести» это для фильтрации коллекции с
-> addFieldToFilter(...)?

Спасибо!

0

Решение

Если ваш запрос был похож на

SELECT * FROM `my_table` WHERE col1='x' AND (col2='y' OR col2='z' OR col4='P')

Вы можете использовать следующее:

$collection->addFieldToFilter('col1', 'x')->addAttributeToFilter(
array(
array('attribute'=>'col2', 'eq'=>'y'),
array('attribute'=>'col2', 'eq'=>'z'),
array('attribute' => 'col4', 'eq' => 'P')
)
)

Но в вашем случае для такого сложного запроса вы должны использовать Zend_Db_Select

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector