Symfony 2 - 如何在控制器之间共享数据

时间:2015-01-15 18:10:44

标签: symfony

我需要能够从另一个控制器中的一个控制器提供一些请求数据。我可以创建一个服务来在一个控制器中设置数据,但是当另一个控制器触发并获得服务时,会创建一个新的服务实例。有什么办法可以让这些数据保持静态并在两个控制器之间共享吗?

2 个答案:

答案 0 :(得分:1)

当您需要从新请求中获取PHP信息时,您将执行相同的基本操作:

  • 将其存储在会话中。 Symfony2有一个很棒的会话组件。非常适合仅在用户导航时需要保存的稍纵即逝的数据
  • 将其存储在数据库中。 Symfony2支持Doctrine,这使得这很容易。非常适合永久存储

任选地:

  • 将其存储在文件系统中。不推荐,除非它实际上是一个文件,但也可以。

答案 1 :(得分:0)

最后,我创建了两个不同的路由来代替控制器操作,而不是使用会话来存储数据。我在控制器操作中添加了一个可选参数,其中一个默认值仅在其中一个路由中指定。然后我可以在控制器运行时测试该参数的值。在调用此控制器操作的Twig模板中,可以使用其中一个路径生成路径,具体取决于已有的变量。

一点工作,但问题解决了!