Фильтрация вывода пользователей через pdoUsers Новый

Дополнение: pdoUsers

Добрый день! Требуется сделать страницу для менеджеров с выводом пользователей по городам, тоесть менеджер выбирает город и выводятся только пользователи с этим городом. Город собираюсь передавать через get, сейчас пока что пробую сделать фильтр так:
[[!pdoUsers?
        &groups=`Users`
        &tpl=`tpl_users`
        &sortby=`id`
        &sortdir=`asc`
        &where=`{'city':'Москва'}`
        &limit=`0`
    ]]
Но таким макаром не отрабатывается, есть ли какие то варианты решения?
13 октября 2016, 09:41    Алексей Соин   
1    455 0

Комментарии (11)

  1. Василий Наумкин 13 октября 2016, 09:50 # 0
    есть ли какие то варианты решения?
    Конечно, попробуй проверить как декодируется твой JSON.

    Подсказка: проблема в кавычках.
    1. Алексей Соин 13 октября 2016, 10:09 # 0
      извиняюсь, это я уже методом тыка пробовал решить проблему)))
      &where=`{"city":"Москва"}`
      так тоже не отрабатывает, выводит пользователей со всеми городами, причем, что интересно
      &where=`{"id":"45"}`
      так фильтрация работает, а всё что кроме id для выборки когда заносишь не отрабатывает.
      1. Василий Наумкин 13 октября 2016, 10:13 # +1
        А, ясно, параметр &showLog ты не используешь по принципиальным соображениям?

        А то мог бы и узнать случайно, что колонки city у таблицы modUser нет. А есть она у modUserProfile:
        &where=`{"modUserProfile.city":"Москва"}`
        1. Алексей Соин 13 октября 2016, 10:32 # 0
          &showLog ранее не пользовался,
          &where=`{"modUserProfile.city":"Москва"}`
          также не работает, я так понимаю modUserProfile по умолчанию отключен в pdoUsers, не могли бы подсказать как его активным сделать?
          1. Василий Наумкин 13 октября 2016, 10:35 # 0
            У тебя в логе написано, что найдено и выбрано 4 результата.

            Убери все свои параметры, для начала, и вызови просто
            [[!pdoUsers?
            	&where=`{"modUserProfile.city":"Москва"}`
            	&showLog=`1`
            ]]
            
            потом уже усложняй.
            1. Алексей Соин 13 октября 2016, 11:12 # 0
              Ок, спасибо, буду пробовать))
              1. Алексей Соин 13 октября 2016, 11:32 # 0
                Разобрался, он с запросом на кириллице не отрабатывает, если делать запрос вида:
                &where=`{"modUserProfile.city":"Gorod"}`
                то всё норм работает
                1. Василий Наумкин 13 октября 2016, 11:39 # 0
                  У меня и на русском работает, может из-за PHP 7.
                  1. Алексей Соин 13 октября 2016, 14:39 # 0
                    хостинг ihc версию php пробовал менять с 5.6 на 7.0.11 так и не работает
                    1. Алексей Соин 14 октября 2016, 10:21 # 0
                      Запрос выглядит таким образом:
                      [[!pdoUsers?
                              &groups=`Users`
                              &tpl=`tpl_statis`
                              &where=`{"modUserProfile.city":"фф"}`
                              &showLog=`1`
                              &limit=`0`
                          ]]
                      Уже в сниппете pdoUsers пробую вардампить то что на входе находится в $where, в результате выводится следующее:
                      string(44) "`{"modUserProfile.city":"фф"}` &s"
                      Причем если {«modUserProfile.city»:«фф»} поменять на {«modUserProfile.city»:«москва»} в вардампе выводится так:
                      string(56) "`{"modUserProfile.city":"москва"}` &showL"
                      Когда пишу запрос на латинице вардамп показывается в уже привычном виде:
                      string(31) "{"modUserProfile.city":"gorod"}"
          2. Андрей 08 апреля 2017, 12:13 # 0
            У меня вопрос, почему форма без action или с пустым action перебрасывается на главную страницу?
            modx.pro/help/11845/
          Вы должны авторизоваться, чтобы оставлять комментарии.