Symfony2获取在twig中调用的请求

时间:2015-02-11 18:46:50

标签: symfony request twig

我有一个twig模板:

{% render controller('MyBundle:Default:leftside') %}

所以我的控制器中有一个动作左侧:

public function leftsideAction(Request $request)

我尝试在此操作中使用以下方法检索GET参数:

$request->get('MY_PARAM')

但我认为它总是空的,因为我在我的模板中渲染了这个动作,我无法检索到我的所有请求。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

由于请求堆栈的概念,完全可以预料到。

Request提供给" main"行动是MASTER_REQUEST,而通过render controller标记提供的行为是SUBREQUEST

您可以详细了解RequestStack功能here

现在,为了在MASTER_REQUEST中定义访问参数,您需要获得request_stack服务,然后获取主请求。在那之后,它照常营业:

public function leftsideAction(Request $request){
    $stack = $this->get('request_stack');
    $master = $stack->getMasterRequest();

    $master->get('MY_PARAM'); // This should work
    $request->get('MY_PARAM'); // But this should not
} 

以下是RequestStack类的定义:link