2015-02-11 37 views
3

叫我有一个树枝模板:Symfony2中获得操作请求在树枝

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

所以我在我的控制器的动作莱夫特赛德:

public function leftsideAction(Request $request) 

我想,在这次行动以检索GET参数:

$request->get('MY_PARAM') 

但它总是空的,我想,因为我在我的模板中渲染这个动作,我不能retri前一天我的要求。

我该怎么做?

回答

3

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

Request供给到“主”动作,以及,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

+0

呀好:)感谢;) – 2015-02-11 19:00:11

+0

很高兴我能帮助;) – 2015-02-11 19:03:39