我是Symfony的新手,但我发现它是一个非常好的框架。现在我和Yii一起工作,Symfony的一些时刻无法理解。。。对不起)
如何从任何控制器获取GET参数(例如?ref=),处理它的参数(在会话中保存ref ID),并返回当前页面的当前用户,但没有此GET参数?
- 创建一个侦听
kernel.request
事件的事件侦听器 - 检查给定的URL是否包含必需的参数,并根据您的需要进行处理
-
返回一个重定向响应到相同的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)); }
您需要使用下一个构造:
http://example?ref=123
public function indexAction(Request $request)
{
$ref = $request->query->get('ref');
}