Pdo resource как правильно написать условие where
        Всем привет.
Мне необходимо использовать фильтр записей, делается это двумя инпутами, сделанными в виде слайдеров, аяксом я передаю эти значения снипету. Так же написал снипет для перевода значений TV и переданных постом в int.
Обе части (тв common-square и переданное Постом)удалось привести к int
Вот код сниппета:
Вот сайт
Решил сделать проще, написать внутри SQL код.
Для начала решил начать с такого, чтобы проверить, работает ли.
В чем может быть дело?
    
    
                                                                                
            Мне необходимо использовать фильтр записей, делается это двумя инпутами, сделанными в виде слайдеров, аяксом я передаю эти значения снипету. Так же написал снипет для перевода значений TV и переданных постом в int.
Обе части (тв common-square и переданное Постом)удалось привести к int
Вот код сниппета:
<?php
  return (int)trim($input);Вот код ресурса для выборки:[[!pdoResources?
    &parents=`15`
    &depth=`0`
    &tpl=`tpl_house_page`
    &includeTVs=`people, main-pic, 1st-floor-square, 2nd-floor-square, Balkon-square, Common-square, Terassa-square`
    &where=`{
      "[[!strToInt? &input=`[[*Common-square]]`]]:<=":"[[!strToInt? &input=`[[!#POST.square]]`]]",
      "AND:people:>=":"[[!#POST.people_count]]"
    }`
    &showLog=`0`
]]Но проверка не работает, всегда возвращает пустоту.Вот сайт
Решил сделать проще, написать внутри SQL код.
Для начала решил начать с такого, чтобы проверить, работает ли.
[[!pdoResources?
    &parents=`15`
    &depth=`0`
    &tpl=`tpl_house_page`
    &includeTVs=`people, main-pic, 1st-floor-square, 2nd-floor-square, Balkon-square, Common-square, Terassa-square`
    &where=`{"TVCommon-square.value <= 120"}`
    &showLog=`1`
]]Но когда я смотрю лог pdoResources, я там в сгенерированном SQL запросе вообще не наблюдаю ничего похожего на TVCommon-square.value <= 120В чем может быть дело?
Комментарии: 1
                Дело оказалось в следующем. При написании чистого SQL необходимо оборочивать конструкцию where в квадратные скобки вместо фигурных. Т.е. вот так:
                    &where=`["TVCommon-square.value <= 120"]`В дополнение к этому, в имени TV нельзя использовать символ -, так как в SQL запросе он трактуется, как минус, и так же, modx приводит все имена к нижнему регистру, несмотря на название TV Commin_square, в БД таблица будет называться TVcommon_square, т.е. итоговый вариант таков:&where=`["TVcommon_square.value <= 120"]`            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.