添加请求参数以进行请求

Chr*_*ris 19 symfony

我需要kernel.event_listener在阶段放置一个标志,kernel.controller以便在kernel.response-listener中执行某些操作.

我考虑过向$request对象添加一个参数,但是没有找到任何方法或者这样:

http://api.symfony.com/2.0/Symfony/Component/HttpFoundation/Request.html

将一些信息从kernel.controller-listener传递给kernel.response-listener 的最佳做法是什么?

用例:

  • 我们希望基于特定请求属性的验证来设置cookie(必须在kernel.controller阶段,因为基于验证的结果,视图可能表现不同).
  • cookie只能在kernel.response-listener中设置,因为它具有Response-instance.

Bár*_*más 40

您可以使用$request->attributes传递信息.在你的控制器监听器中:

$request->attributes->set('mykey', 'myvalue');
Run Code Online (Sandbox Code Playgroud)

在你的回复听众中:

$myvalue = $request->attributes->get('mykey');
Run Code Online (Sandbox Code Playgroud)