【发布时间】:2014-06-04 21:39:00
【问题描述】:
我有一个 Symfony 事件监听器,它正在监听“kernel.request”。我想为请求添加一个属性,我可以在我的控制器中访问它。我试过这样做:
$request = $event->getRequest();
$request->attributes->set('test', 'testvalue');
但是,“test”属性不是我的控制器中请求对象的一部分。我没有收到任何错误,但它不存在。我还需要做什么?
编辑:
我确认正在调用侦听器。在我的控制器中,我有这个,但没有得到“测试”属性:
class DefaultController extends BaseController
{
public function indexAction(Request $request)
{
echo "<pre>"; print_r($request->attributes); echo "</pre>";
}
}
【问题讨论】:
-
您发布的内容应该有效。验证您的侦听器实际上正在被调用。并且控制器正在使用 get 或操作有一个名为 $test 的参数。
-
哪个 Symfony 版本? 2.4+?
-
Cerad:我认为 Steven 试图做的是将任意参数注入响应中。
-
刚刚更新了我的问题,提供了更多细节
标签: symfony