动作控制器后重定向到上一页

hou*_*ous 2 php redirect symfony

我想在动作控制器之后重定向到上一页,但是我收到了这个错误. Symfony版本2.5.8

Cannot redirect to an empty URL.
500 Internal Server Error - InvalidArgumentException
Run Code Online (Sandbox Code Playgroud)

这是actiuon:

    public function addFavoriteAction(Travel $travel, Request $request)
    {

    if (!$this->get('security.context')->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
        return $this->redirect($this->generateUrl('fos_user_security_login'));
    }

    if ($request->getMethod() == 'GET') {

    $favorite = new Favorite();

    $em = $this->getDoctrine()->getManager();

    $favorite->setUser($this->get('security.context')->getToken()->getUser());
    $favorite->setTravel($travel);


    $em->persist($favorite);
    $em->flush();
    }

    $referer = $this->getRequest()->headers->get('referer');
    return $this->redirect($referer);
}
Run Code Online (Sandbox Code Playgroud)

更新

出现错误是因为我直接在浏览器地址栏中键入了操作链接.

小智 6

具有引用的解决方案不可靠,它是null.代理,浏览器可能会削减它.你首先需要检查$referer变量.

    $referer = $this->getRequest()->headers->get('referer');
    if ($referer == NULL) {
        $url = $this->router->generate('fallback_url');
    } else {
        $url = $referer;
    }
Run Code Online (Sandbox Code Playgroud)