向请求添加请求参数 [英] Add request parameter to request
问题描述
我需要在 kernel.controller
阶段的 kernel.event_listener
中放置一个标志,以便在 kernel.response
中执行某些操作- 听者.
I need to put a flag in an kernel.event_listener
at stage kernel.controller
in order to do something in an kernel.response
-listener.
我想过给 $request
对象添加一个参数,但是没有找到任何方法或这个:
I thought about adding a parameter to the $request
object, however have not found any method or this:
http://api.symfony.com/2.0/Symfony/组件/HttpFoundation/Request.html
将一些信息从 kernel.controller
-listener 传递到 kernel.response
-listener 的最佳做法是什么?
What is the best practice to pass some informatino from an kernel.controller
-listener to an kernel.response
-listener?
用例:
- 我们想根据特定请求属性的验证来设置 cookie(必须在
kernel.controller
阶段,因为基于验证的结果,视图的行为可能会有所不同). - cookie 只能在
kernel.response
-listener 中设置,因为它具有Response
-instance.
- We want to set a cookie based on a validation of a specific request attribute (must be in
kernel.controller
-stage, since based on the result of the validation, the view may behave different). - The cookie can only be set in the
kernel.response
-listener, since it has theResponse
-instance.
推荐答案
您可以使用 $request->attributes
来传递信息.在您的控制器侦听器中:
You can use $request->attributes
to pass around information. In your controller listener:
$request->attributes->set('mykey', 'myvalue');
在您的响应侦听器中:
$myvalue = $request->attributes->get('mykey');
这篇关于向请求添加请求参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!