PdoResources: &where и приведение к числу

Всем привет. Нужно сделать фильтр по tv. Вызов pdoResources такой:
[[pdoResources?
    &tpl=`template_itemProperty`
    &depth=`0`
    &includeTVs=`property_offer,property_place,property_district,property_images,property_price,property_type,property_rooms`
    &processTVs=`property_images`
    &sortby=`{"menuindex" : "ASC"}`
    &where=`{"property_price:>=" : 10000000}`
]]

Условие WHERE в сгенерированном SQL такое:

WHERE  ( `TVproperty_price`.`value` >= '10000000' AND `modResource`.`parent` IN (75) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 )


Фактически он привел его к строке. Выборка получается не верной, т.к. сравниваются строки. У ТВ стоит тип число. Версия pdoTools 1.9.2. Что я делаю не так?
Igor Ostancov
04 июля 2014, 10:06
modx.pro
4 633
0

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

Василий Наумкин
04 июля 2014, 14:34
1
+1
&where=`["Любое условие на чистом SQL"]`

Наверное, нужно использовать CAST(), а может и так заработает:
&where=`["TVproperty_price.value >= 10000000"]`
    Igor Ostancov
    04 июля 2014, 14:37
    0
    Второй вариант работает. Спасибо.
    Максим
    18 марта 2016, 11:22
    0
    А где вы сгенерированный SQL смотрите? У меня схожая проблема, но даже при банальном условии не отрабатывает, и я это условие в SQL не нахожу. Я смотрю через showLog. Вот мой код:
    [[!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`
    ]]
    Вот этот код TVCommon-square.value <= 120 вообще не нахожу нигде в SQL условии лога
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3