简体   繁体   English

从任何应用程序位置获取GET参数(Symfony2)

[英]Take GET-parameter from any place of application (Symfony2)

I'm new in Symfony, but I see that it's very good framework. 我是Symfony的新手,但我看到它是一个非常好的框架。 Now I'm working with Yii and some moments in Symfony can't understand... Sorry) 现在,我正在与Yii合作,Symfony中的某些时间无法理解...(抱歉)

How can I take GET-parameter from any controller (for example ?ref=), processing it parameter (save REF ID in session) and return current user for current page but without this GET-parameter? 如何从任何控制器中获取GET参数(例如?ref =),对其进行处理(在会话中保存REF ID)并返回当前页面的当前用户但没有此GET参数?

  1. Create an event listener that listens on kernel.request event. 创建一个侦听kernel.request事件的事件侦听器
  2. Check if given URL contains required parameter, and handle it according to your needs. 检查给定的URL是否包含必需的参数,并根据需要进行处理。
  3. Return a redirect response to the very same URL but without ref parameter: 将重定向响应返回到相同的URL,但不带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)); } 

You need to use next construction: 您需要使用下一个构造:

http://example?ref=123


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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM