Не работает условие OR в where

Приветствую сообщество!
В общем дело следующее, есть вызов:
{$_modx->runSnippet('!msProducts', [
    'parents' => $_modx->resource.id,
    'context' => $_modx->context.key,
    'includeTVs' => 'subject_type',
    'sortby' => 'RAND()',
    'where' => [
                'Data.old_price:!=' => 0,
                'OR:Data.gift' => 1,
                ] | json_encode,
    'limit' => 8,
    'tpl' => 'main.productPage.oneProducts.special.tpl',
])}
Требуется, чтобы из параметра where выводило:
  • Если Старая цена больше 0
  • Либо Если чекбокс Подарок равен 1
  • Либо если к товару прилеплена акция (в виде опять таки не пустого поля)

Данная конструкция не работает, вообще на самом деле никакая не работает…
В консоль отдает:
[2018-08-27 05:07:25] (ERROR @ /home/s14963/www/bK30fl4UHXsK/components/pdotools/model/pdotools/pdofetch.class.php: 172) [pdoTools] Error 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Data.gift '1' AND `msProduct`.`parent` IN (11,22,24,42,43,51,52,60,61) AND `msPr' at line 1
Помогите пожалуйста разобраться.
Andrey
27 августа 2018, 05:13
modx.pro
1 056
0

Комментарии: 2

Konstantin
28 августа 2018, 08:10
+1
'where' => ["Data.article != 0 OR OR:Data.gift = 1"],
или
'where' => '{"Data.article:!=":"0","OR:Data.gift:=":"1"}',
    Andrey
    28 августа 2018, 16:49
    0
    Дай Вам Боже здоровья!
    Второй вариант работает!
    + я добавил наконец третье условие, когда акция есть:
    'where' => '{"Data.old_price:!=":"0","OR:Data.gift:=":"1","OR:Data.action_id:NOT LIKE":""}',
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2