Symfony2 获取在 twig 中调用的动作请求

Symfony2 get request in action called in twig

我有一个树枝模板:

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

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

public function leftsideAction(Request $request)

我正在尝试在此操作中检索 GET 参数:

$request->get('MY_PARAM')

但我想它总是空的,因为我在我的模板中呈现这个动作,我无法检索我的所有请求。

我该怎么做?

由于请求堆栈的概念,这完全符合预期。

提供给 "main" 操作的 RequestMASTER_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 class 的定义:link