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

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

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

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

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

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

          Убери все свои параметры, для начала, и вызови просто
          [[!pdoUsers?
          	&where=`{"modUserProfile.city":"Москва"}`
          	&showLog=`1`
          ]]
          потом уже усложняй.
            Алексей Соин
            13 октября 2016, 11:12
            0
            Ок, спасибо, буду пробовать))
              Алексей Соин
              13 октября 2016, 11:32
              0
              Разобрался, он с запросом на кириллице не отрабатывает, если делать запрос вида:
              &where=`{"modUserProfile.city":"Gorod"}`
              то всё норм работает
                Василий Наумкин
                13 октября 2016, 11:39
                0
                У меня и на русском работает, может из-за PHP 7.
                  Алексей Соин
                  13 октября 2016, 14:39
                  0
                  хостинг ihc версию php пробовал менять с 5.6 на 7.0.11 так и не работает
                    Алексей Соин
                    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"}"
          Андрей
          08 апреля 2017, 12:13
          0
          У меня вопрос, почему форма без action или с пустым action перебрасывается на главную страницу?
          modx.pro/help/11845/
          Евгений Лазарев
          06 августа 2018, 18:48
          0
          Добрый день. Требуется помощь. Не могу правильно настроить фильтрацию по полю в extended для сниппета pdoUsers. Знаю что уже создавались темы на этом сайте и что есть решения, но по какому то случаю они у меня убедительно не действуют. Мне нужно грубо говоря получить количество учеников у которых определенной учитель. Заранее спасибо.

          Вот мой код:
          [[!pdoUsers?
              &groups=`student`
              &where=`{"modUserProfile.extended.id_teacher":16}`
              &setTotal=`1`
          ]]
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            12