Можно ли получить доступ к значению сеанса в Leaf?

Можно ли получить значение сеанса в Leaf?

Как было предложено в этом сообщении, я должен иметь доступ к сеансу, используя #(request.session).

Но когда я устанавливаю значение в сеансе:

try request.assertSession().data.set("foo", "bar")

Я ничего не получил, используя:

#(request.session.foo)

Я также пробовал:

#(foo)
#(session.foo)
#(session.data.foo)
#(request.session.data.foo)

Ни один из них не работает.

Что мне не хватает? У меня Vapor 2.4.4 с Leaf Provider 1.1.0.


person ix4n33    schedule 26.03.2018    source источник


Ответы (1)


Доступ к нему возможен - если вы передадите его в свой контекст. Однако зачем вам нужен доступ к нему? Я не хочу сказать, что это плохая идея... это просто действительно плохая идея.

person 0xTim    schedule 26.03.2018
comment
Я согласен. Есть гораздо более простые способы передачи данных в представление, и я не вижу причин, по которым передача их через сеанс является хорошей идеей. - person Nick; 26.03.2018
comment
Я пытаюсь отобразить некоторые значения, такие как имя пользователя, на мой взгляд. Прямо сейчас я передаю его через узел каждый раз, когда создаю представление, что я не думаю, что это хорошая идея. Я хотел бы увидеть какой-либо правильный и элегантный способ делать такие вещи. - person ix4n33; 27.03.2018
comment
...и, конечно же, я нашел это за 5 минут, погуглив по некоторым другим ключевым словам. Итак, storage в запросе — это место, куда я должен поместить свои данные, верно? - person ix4n33; 27.03.2018
comment
Я делаю это с помощью обычного построителя представлений, который я вызываю вместо Lead. Это вводит все обычные вещи и держит в чистоте - person 0xTim; 27.03.2018
comment
Я должен был подумать об этом... Спасибо, что поделились. - person ix4n33; 28.03.2018