我有一个twig模板:
{% render controller('MyBundle:Default:leftside') %}
所以我的控制器中有一个动作左侧:
public function leftsideAction(Request $request)
我尝试在此操作中使用以下方法检索GET参数:
$request->get('MY_PARAM')
但我认为它总是空的,因为我在我的模板中渲染了这个动作,我无法检索到我的所有请求。
我该怎么做?
答案 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