Pyrocms, поток на где пункт
Я использую пирокмы для разработки сайта. Мне нужно использовать поток для просмотра. Я бы хотел, чтобы отображались только записи, соответствующие текущему пользователю. Я использую следующий запрос (user_id - это имя поля в моей базе данных)
{{ streams:cycle stream="{{ stream }}" where="`user_id`='{{user:id}}'" order_by="nom" sort="asc"}}
Pyrocms работает как если бы мой запрос остановился перед предложением where. и это показывает мне это на странице:
1 '"order_by =" nom "sort =" asc "}}
и я смотрю все результаты на странице (все записи для всех пользователей).
Если я использую этот запрос, он работает:
{{ streams:cycle stream="{{ stream }}" where="`user_id`=1" order_by="nom" sort="asc"}}
Что я делаю не так? Могу ли я использовать переменную в предложении where?
Спасибо Матье
1 ответ
Для начала попробуйте {{streams: cycle stream = "stream_name
".... без фигурных скобок и имя потока заключено в обратные галочки, во-вторых, является ли user_id полем в потоке, к которому вы обращаетесь? Ниже приводится выдержка из документации по подключаемому модулю Streams:
Примечание. Предложение where напрямую сопоставлено с предложением where в MySQL, поэтому вы ограничены в значениях, которые вы можете ограничить. Например, если у вас есть раскрывающееся поле Выбор с ключом и значением, ключ сохраняется в базе данных. Таким образом, если вы хотите ограничить этим полем, вам нужно ограничить ключом выбора, а не значением.
Вам может потребоваться создать поток для пользователей и использовать тип поля Отношения. Например:
{{streams: users where = "active
= '1' "...}}
{{ streams:stream_name where="`user`='{{ id }}'"... }}
.........................
{{ /streams:stream_name }}
{{/ streams: users}}
обратите внимание, что {{ id }} является идентификатором записи в потоке пользователей. Снова обратите внимание на требование обратных тиков - но похоже, что вы контролируете его на основе примеров кода
Надеюсь это поможет.