PdoResources: &where и приведение к числу
Всем привет. Нужно сделать фильтр по tv. Вызов pdoResources такой:
Условие WHERE в сгенерированном SQL такое:
Фактически он привел его к строке. Выборка получается не верной, т.к. сравниваются строки. У ТВ стоит тип число. Версия pdoTools 1.9.2. Что я делаю не так?
[[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. Что я делаю не так?
Комментарии: 3
&where=`["Любое условие на чистом SQL"]`
Наверное, нужно использовать CAST(), а может и так заработает:
&where=`["TVproperty_price.value >= 10000000"]`
Второй вариант работает. Спасибо.
А где вы сгенерированный 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 условии лога
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.