【问题标题】:Set Symfony Request attribute in Request Listener在请求侦听器中设置 Symfony 请求属性
【发布时间】: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


【解决方案1】:

事实证明我的事件监听器在我的属性被设置之前就返回了。愚蠢的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    相关资源
    最近更新 更多