我想将用户重定向回他开始请求的路径。
实施例: /简档
/简档/编辑
/简档
OR:
/产品
/简档/编辑
/产品
我需要为此重定向模式设置什么?
答案 0 :(得分:1)
在/profile/edit
的控制器中,您可以使用$request->headers->get('referer')
捕获他们来自的页面。
如果/profile/edit
是一个包含单个表单的页面,我可能只会添加一个隐藏字段,指出重定向应该去哪里。
public function editAction(Request $request)
{
// If you have a POST value coming from the user, it will be used, otherwise
// assume this is the first time they landed on the page and grab the current
// referer. With this method it doesn't matter how many times they submit the form
// you won't accidentally overwrite the referer URL with /profile/edit. That could
// lead to a confusing loop.
$referer = $request->request->get('referer', $request->headers->get('referer'));
if ($formIsSaved)
{
return new RedirectResponse($referer)
}
return array(
// Your template should include a hidden field in the form that returns this.
'referer' => $referer,
);
}
答案 1 :(得分:0)
您可以将重定向路径作为GET参数(例如redirectTo
)传递到编辑页面,并在编辑过程完成后重定向到该路径。
return new RedirectResponse($request->query->get('redirectTo');
您可以通过检查是否提供该参数来使其更加健壮,如果不是,则重定向到某种默认路径。