[pdoTools] Error 42S22: Unknown column 'good.sfera

Привет.
Прошу помощи, т.к. никак не могу победить ошибку
[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 мою ТВ переменную и оставить только шаблон, то все работает корректно.
Михаил
17 июля 2017, 23:58
modx.pro
2 839
0

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

Іван Клімчук
18 июля 2017, 10:17
0
Переименуйте good.sfera так, чтобы в нем не было точки.
    Михаил
    19 июля 2017, 11:38
    0
    Спасибо, но не помогло. Переименовал тв и заменил строку &where
    {"template":3,"goodsfera:LIKE":"%#135#%"}
    Получил ошибку
    [pdoTools] Error 42S22: Unknown column 'modResource.goodsfera' in 'where clause'
      Іван Клімчук
      19 июля 2017, 11:54
      0
      Ошибка очевидна, потому что TV — это не поле ресурса. Для фильтрации по TV вам нужно использовать параметр tvFilters или как-то так называется и в нем указывать по какому TV полю искать. Через where тоже можно, но нужно предварительно подключить несколько таблиц через join где хранится информация о TV.
        Михаил
        19 июля 2017, 14:29
        0
        Сделал как тут modx.pro/howto/6198-complex-selection-on-the-tv-settings-in-getresources/#comment-44001, собака была зарыта в точке и в поле &includeTVs.

        А можно ли оставить точку? Не хочется переделывать, много переделывать…
          Іван Клімчук
          19 июля 2017, 14:32
          0
          В данном случае pdoResources уже делает всю работу по подключению доп-таблиц, но точка при этом может не работать, ибо точка в mysql используется для разделения имени таблицы и имени поля, что в случае TV с точкой в имени может неправильно интерпретироваться при попытке выполнить sql-запрос.
            Михаил
            19 июля 2017, 14:52
            0
            Спасибо за Ваш ответ.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    6