Как отфильтровать товары в коллекции, используя AND и OR

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 Хыиуду
  • Группа: Пользователь
  • Сообщений: 56
  • Регистрация: 05.07.2012

16.11.2012 14:01

Mage :: getModel ( 'catalog/product' )
-> getCollection ()
-> addFieldToFilter ( 'vendor' ,array( "eq"=>"Sony"))
-> addFieldToFilter ( 'price', array ( 'gt'=>15000))

даст выборку where e.vendor="Sony" and e.price>=15000

Mage :: getModel ( "catalog/product" )
-> getCollection ()
-> addFieldToFilter ( "name" , array ( array( "eq"=>"foobar"), array ("like" => "a%"))

дает выборку where (name = 'foobar') or (name like 'a%')

Mage :: getModel ( "catalog/product" )
-> getCollection ()
-> addAttributeToFilter (
array( array( 'attribute'=>'vendor', 'eq' => 'Fuji' ), array ('attribute'=>'price', 'gteq'=>15000)),
NULL,
'left'
) 


дает выборку where (vendor="Fuji") or (price>=15000). Не забудьте про NULL и 'left' вторым и третьим параметрами

Поделиться темой: