условия запроса where c json
Вывожу сниппет msFilter2 c параметром kolichestvodverei в нем храниться json-массив такого вида ["\u0414\u0432\u0443\u0445\u0434\u0432\u0435\u0440\u043d\u044b\u0439","\u0422\u0440\u0451\u0445\u0434\u0432\u0435\u0440\u043d\u044b\u0439"], как я понимаю для того чтобы Like выбрал из этого массива необходимую мне строку ее нужно обработать json_encode() ( двухдверный -> "\u0414\u0432\u0443\u0445\u0434\u0432\u0435\u0440\u043d\u044b\u0439" ) и его подставить в запрос, это выполняет сниппет text_to_json.
[[!mFilter2?
&parents=`6`
&paginator=`pdoPage`
&limit=`1000`
&element=`msProducts`
&includeTVs=`for_cosmetic`
&filters=`tv|for_cosmetic`
&tpls=`tpl.msProducts.row`
&class=`msProduct`
&tplOuter=`tpl.mFilter2.outer`
&sort=`menuindex:asc`
&where=`{«Data.kolichestvodverei:LIKE»:"[[!text_to_json? &text=`[[!*the_number_of_doors]]`]]"}`
&showLog=`1`
]]
но при этом запросе мне выводиться полностью весь каталог товаров. Подскажите что не так делаю?
&parents=`6`
&paginator=`pdoPage`
&limit=`1000`
&element=`msProducts`
&includeTVs=`for_cosmetic`
&filters=`tv|for_cosmetic`
&tpls=`tpl.msProducts.row`
&class=`msProduct`
&tplOuter=`tpl.mFilter2.outer`
&sort=`menuindex:asc`
&where=`{«Data.kolichestvodverei:LIKE»:"[[!text_to_json? &text=`[[!*the_number_of_doors]]`]]"}`
&showLog=`1`
]]
но при этом запросе мне выводиться полностью весь каталог товаров. Подскажите что не так делаю?
Комментарии: 3
Не знаю, как у вас написан сниппет, но возможно, у вас там нет подстановки знака %, получается проверка на строгое совпадение, т.е. вместо field LIKE '%value%' у вас field LIKE 'value', попробуйте {«Data.kolichestvodverei:LIKE»:"%[[!text_to_json? &text=`[[!*the_number_of_doors]]`]]%"}
Верное замечание.
Андрей, а если потребуется вывести смешанный запрос с json и с полем текст, такое возможно будет сделать?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.