Вопрос по where в msProducts

Создал доп. поле order_articles, в котором перечисляю через запятую артикулы. Например, 258768,979406. Задача — вывести все товары, артикулы которых входят в список, заданный в order_articles.

Вот мой сниппет, который не работает
{'msProducts' | snippet:[
'parents'=>8,
'tpl'=>'productListTpl',
'limit'=>9,
'includeThumbs'=>'medium',
'where' => [
'Data.article:IN' => [$_modx->resource.order_articles],
],
'tplWrapper'=>'@INLINE <div class="row">{$output}</div>',
'showLog'=>'1'
]}

Если список артикулов напрямую вставить во where, то выборка товаров происходит правильно
'where' => [
'Data.article:IN' => [258768,979406],
],
showlog показывает, что в случае правильной работы SQL prepared выводит
`Data`.`article` IN ('258768','979406')
В нерабочем варианте
`Data`.`article` IN ('258768,979406')

Т.е. я так понимаю, сниппет не работает, если каждый артикул не в одинарных кавычках.

Вопрос, как мне вывести во where условие в правильном виде?
Константин
30 января 2019, 16:09
modx.pro
705
0

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

Наумов Алексей
30 января 2019, 16:42
+1
Ибо в вашем варианте вы получаете массив с 1 элементом «строка», где через запятую перечислены артикулы.
А надо массив из нескольких элементов.

Попробуйте
'Data.article:IN' => ($_modx->resource.order_articles | split)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
2