我正在Symfony2项目中工作,我有一个控制器的动作,从2个不同的页面调用。我怎么知道哪个页面叫做我的动作,所以我可以根据发出请求的人返回不同的响应:
这是我想做的一个例子
public function deleteAction(File $file)
{
// i delete the file
if (// request made from first page) {
return $this->redirect($this->generateUrl('route_of_first_page');
}
elseif (// request made from second page) {
return $this->redirect($this->generateUrl('route_of_second_page');
}
}
这样我就可以留在提出请求的页面中
答案 0 :(得分:4)
您需要采取行动才能获得请求参数:
public function deleteAction(Request $request, File $file)
然后从请求对象获取引用:
$previousUrl = $request->headers->get('referer');
修改强>
获取路径对象:
$router = $this->get('router');
$route = $router->match($previousUrl);
答案 1 :(得分:0)
请确保在文件开头包含重定向
use Symfony\Component\HttpFoundation\RedirectResponse;
然后直接调用它的构造函数来重定向
return new RedirectResponse($request->server->get('HTTP_REFERER', $this->router->generate('default_route',array()) ));
默认路线是可选的