[РЕШЕНО] Вывод pdoResources по MULTISELECT
Всем привет.
Сервис онлайн заказа еды. Есть разделение меню по времени, например: завтрак, обед, ужин.
С помощью доп. поля «seviceTime» (типа: multiselect) (завтрак==1||обед==2||ужин==3||) каждому блюду можно назначить несколько вариантов в какое время оно отображается на сайте, например:
— салат Оливье (завтрак, обед)
— салат Крабовый (завтрак)
— Борщ (обед)
— Щи (обед, ужин)
— Запеканка (ужин)
В зависимости от времени суток некая переменная $servTime принимает значения 1, 2 или 3
Есть необходимость выводить ресурсы, у которых одно из значений доп. поля «seviceTime» соответвует $servTime.
Так как в некоторых ресурсах значение поля «seviceTime» может быть: 1,2 или 2,3 то такой вызов с помощью 'tvFilters'=>'serviceTime=='~$servTime не работает.
{$_modx->runSnippet('pdoResources',[
'parents'=>'15',
'tpl'=>'menuItem_tpl',
'depth'=>'1',
'includeTVs'=>'image,price,serviceTime',
'processTVs'=>'1',
'tvFilters'=>'serviceTime=='~$servTimeАналогично пробовал с where:{$_modx->runSnippet('pdoResources',[
'parents'=>'15',
'tpl'=>'menuItem_tpl',
'depth'=>'1',
'includeTVs'=>'image,price,serviceTime',
'processTVs'=>'1',
'where' => [
"serviceTime:IN" => $servTime
]В этих случаях если например сейчас обед, то выводятся только те ресурсы у которых в доп. поле «serviceTime» указано одно значение например — Борщ (обед). А если там несколько значений — салат Оливье (завтрак, обед), то этот ресурс не выводится.Помогите, пожалуйста, составить условие, при котором будут выводиться все ресурсы у которых есть совпадения какого-либо из нескольких значений доп. поля «serviceTime» со значением переменной $servTime.
Комментарии: 2
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Я выхожу из этой ситуации таким образом. В значениях доп. поля ставим не числа, а слова — завтрак==breakfast||обед==lunch||ужин==dinner||. В этом случае условие с LIKE нормально отработает и для случаев с одним значением, и для нескольких: