[pdoTools] Error 42S22: Unknown column 'good.sfera
Привет.
Прошу помощи, т.к. никак не могу победить ошибку
Вызываю pdoResources через собственный сниппет и передаю в &where следующую строку:
good.sfera — ТВ переменная документа, у которого template=3
Точно есть ресурс с заполненным ТВ параметром good.sfera = '#135#'
PS: если убрать из &where мою ТВ переменную и оставить только шаблон, то все работает корректно.
Прошу помощи, т.к. никак не могу победить ошибку
[pdoTools] Error 42S22: Unknown column 'good.sfera' in 'where clause'
Вызываю pdoResources через собственный сниппет и передаю в &where следующую строку:
{"template":3,"good.sfera:LIKE":"%#135#%"}
good.sfera — ТВ переменная документа, у которого template=3
Точно есть ресурс с заполненным ТВ параметром good.sfera = '#135#'
PS: если убрать из &where мою ТВ переменную и оставить только шаблон, то все работает корректно.
Комментарии: 6
Переименуйте good.sfera так, чтобы в нем не было точки.
Спасибо, но не помогло. Переименовал тв и заменил строку &where
{"template":3,"goodsfera:LIKE":"%#135#%"}
Получил ошибку[pdoTools] Error 42S22: Unknown column 'modResource.goodsfera' in 'where clause'
Ошибка очевидна, потому что TV — это не поле ресурса. Для фильтрации по TV вам нужно использовать параметр tvFilters или как-то так называется и в нем указывать по какому TV полю искать. Через where тоже можно, но нужно предварительно подключить несколько таблиц через join где хранится информация о TV.
Сделал как тут modx.pro/howto/6198-complex-selection-on-the-tv-settings-in-getresources/#comment-44001, собака была зарыта в точке и в поле &includeTVs.
А можно ли оставить точку? Не хочется переделывать, много переделывать…
А можно ли оставить точку? Не хочется переделывать, много переделывать…
В данном случае pdoResources уже делает всю работу по подключению доп-таблиц, но точка при этом может не работать, ибо точка в mysql используется для разделения имени таблицы и имени поля, что в случае TV с точкой в имени может неправильно интерпретироваться при попытке выполнить sql-запрос.
Спасибо за Ваш ответ.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.