我有一个场景,用户点击收到的电子邮件需要登录的链接。如果链接是http://test.url.com/product/2
,用户应该登录,并且页面应该在身份验证后重定向到相同的路径
我试图通过使用print_r($request->headers->get('referer'));
来解决此问题,http://test.url.com/product/2
在此处发布了一个问题:Redirect to the url of the clicked (referred) link。这是不成功的,因为它返回null。
我的下一个目标是根据网址将参数传递到登录页面。
例如:如果用户点击http://test.url.com/signin/product/2
,则登录网址会显示为http://test.url.com/signing?=pruduct?2
或{{1}},或类似系统会将用户重定向到所需网页的内容。< / p>
非常感谢有关从配置级别传递参数的任何文档/示例,因为我对此域名非常陌生。谢谢:))
答案 0 :(得分:1)
我建议在登录网址上提及重定向网址作为查询字符串,如
http://test.url.com/signin/?redirect=http://test.url.com/product/2
成功登录后,您只需
$url=$_GET['redirect'];
header("location:".$url);
答案 1 :(得分:0)
这对你有帮助吗?
public function productAction($id, Request $request){
$url = $this->container->get("router")->generate("product_route", array("id" => $id));
/** @var $session Session */
$session = $request->getSession();
$session->set("redirect_url", $url);
}
public function signinAction(Request $request){
// do your stuff
/** @var $session Session */
$session = $request->getSession();
if ($session->has("redirect_url")){
return new RedirectResponse($session->get("redirect_url");
}
}