在片段控制器中获取masterRequest URL

时间:2016-08-02 09:07:09

标签: php ajax symfony

单击按钮时,我已经创建了一个由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?

由于

1 个答案:

答案 0 :(得分:1)

为什么要使用请求堆栈?

您可以直接在Controller中使用Request

$request->getUri();