单击按钮时,我已经创建了一个由Ajax请求调用的方法。
/**
* @param Request $request
*
* @Route("/add", name="rapid_access_add", options={"expose"=true})
* @Method({"GET"})
*
* @return Response
*/
public function addRouteAction(Request $request)
{
$title = $request->query->get('title');
$user = $this->getUser();
$url = $this->get('request_stack')->getMasterRequest()->getUri();
$rapidAccess = new RapidAccess();
$rapidAccess->setUrl($url)
->setTitle($title)
->setUser($user);
$em = $this->getDoctrine()->getManager();
$em->persist($rapidAccess);
$em->flush();
$this->addFlash('success', $this->get('translator')->trans('user.flash.rapid_access_added', ['%title%' => $title], 'front'));
return new Response('OK');
}
我正在尝试获取当前页面的URL,由另一个控制器呈现(此方法位于片段控制器中)。
但是当我使用$this->get('request_stack')->getMasterRequest()->getUri();
时,这会给我addRouteAction
方法的网址。
这应该给我主请求URL但我不明白为什么这个给我发送这个方法的URL。如何获取当前页面URL而不是此方法URL?
也许我应该用JS获取URL?
由于
答案 0 :(得分:1)
为什么要使用请求堆栈?
您可以直接在Controller中使用Request
:
$request->getUri();