向请求添加请求参数 [英] Add request parameter to request

查看:40
本文介绍了向请求添加请求参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在 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 the Response-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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆