fenom tvFilters like
Как правильно прописать оператор LIKE в pdoResources с fenom?
'tvFilters' => 'committees==' ~ $_modx->resource.id,
ТВ committees может быть с одним значением (52) или несколькими (52||53).
Поблагодарить автора
Отправить деньги
Комментарии: 5
Попробуй так
Если несколько вариантов, то можно так:
set $tvFilters = 'committees==' ~ $_modx->resource.id
Посмотри, что в этой переменной, попробуй ее значение руками подставить.Если несколько вариантов, то можно так:
{set $tvFilters = ''}
{foreach '52||53||54' | split : '||' as $id}
{$tvFilters += ',committees=='~$id'}
{/foreach}
На php и феноме давно не писал, примерная реализация
committees может быть любым. Нужно выбрать по %LIKE%
Список фильтров по ТВ, с разделителями AND и OR. Разделитель, указанный в параметре &tvFiltersOrDelimiter представляет логическое условие OR и по нему условия группируются в первую очередь. Внутри каждой группы вы можете задать список значений, разделив их &tvFiltersAndDelimiter. Поиск значений может проводиться в каком-то конкретном ТВ, если он указан «myTV==value», или в любом «value». Пример вызова: &tvFilters=`filter2==one,filter1==bar%||filter1==foo`. Обратите внимание: фильтрация использует оператор LIKE и знак «%» является метасимволом. И еще: Поиск идёт по значениям, которые физически находятся в БД, то есть, сюда не подставляются значения по умолчанию из настроек ТВ.Соответственно если нужно спользовать лайк нужно делать строку
set $tvFilters = 'committees==%' ~ $_modx->resource.id~'%'
'tvFilters' => 'committees==%' ~ $_modx->resource.id~'%', Работает. Спасибо!
Я бы сделал обертку значения, ибо по %52% найдутся и 152 и 524
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.