【发布时间】:2020-05-30 08:59:22
【问题描述】:
我想设置一个下拉列表,列出我网站所有页面上的一些货币(Symfony 4.4)。 然后,此下拉列表中设置的值将用于将价格调整/转换为用户喜欢的货币。 我一直在玩一些会话参数,但并不令人满意。我觉得我需要挂钩事件,但我不确定应该使用哪个事件。 我在想这样的事情
-- Request --
-- Event catcher --
If (currency not set in the session) then set currency to default (e.g. USD or EUR), I will probably base this on the user's locale
-- Send reply --
棘手的一点是更改货币。我想我需要设置一个路由来更改会话参数并重定向到当前路由。
我还考虑在路线中添加货币(这将是我最喜欢的选项),但我已经有一个语言前缀 (_locale),我不确定如何应用多个前缀... 感谢您的任何帮助或指导
【问题讨论】:
-
当您说“用户”时,您实际上是指用户还是会话?如果是后者,你可以从字面上看一下 symfony 是如何处理语言环境的,因为它实际上是同一个概念。 Symfony 使用事件侦听器,您当然可以在会话中设置它而不是(或附加到)路由器上下文以使其具有粘性
-
这里的用户是使用该应用程序的任何人。确实有一些专门的文档here。还提到我们应该避免在不必要的时候创建会话,所以我将进一步探索路由选项。归根结底,它是关于使它与我的 LanguageListener 一起工作并处理路由的多个前缀。
标签: symfony session routes symfony4