从任何应用场所获取GET参数(Symfony2)

时间:2014-04-23 08:26:22

标签: php symfony

我是Symfony的新人,但我发现它是非常好的框架。现在我和Yii合作,Symfony的一些时刻无法理解......抱歉)

如何从任何控制器获取GET参数(例如?ref =),处理它参数(在会话中保存REF ID)并返回当前页面的当前用户但没有此GET参数?

2 个答案:

答案 0 :(得分:2)

  1. Create an event listener收听kernel.request事件。
  2. 检查给定的URL是否包含必需参数,并根据您的需要进行处理。
  3. 将重定向响应返回到同一个网址但没有ref参数:

    public function onKernelRequest(GetResponseEvent $event) {
        if (!$event->isMasterRequest()) {
            return;
        }
    
        if (!$event->getRequest()->query->has('ref')) {
            return;
        }
    
        $ref = $event->getRequest()->query->get('ref');
    
        // do whatever you need
    
        $url = ...; // prepare redirect URL
        $event->setResponse(new RedirectResponse($url));
    }
    

答案 1 :(得分:0)

您需要使用下一个构造:

http://example?ref=123


public function indexAction(Request $request)
{
    $ref = $request->query->get('ref');
}