Я использую пирокмы для разработки сайта. Мне нужно использовать поток для просмотра. Я бы хотел, чтобы отображались только записи, соответствующие текущему пользователю.
Я использую следующий запрос (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?
Спасибо
Матье
Для начала попробуйте {{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}} является идентификатором записи в потоке пользователей. Снова обратите внимание на требование обратных тиков — но похоже, что вы управляете этим на основе примеров кода
Надеюсь это поможет.
Других решений пока нет …