如何在Symfony中正确重定向?

时间:2017-02-09 08:40:10

标签: php symfony redirect

我有一条创建多个数据库条目的路由。在创建之后,我想转发到获取这些条目并显示它们的路线。

这是获取/显示的路线:

/**
 * @Route("/admin/app", name="appTourOverview")
 */
public function appTourOverviewAction(Request $request)
{

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

    /* Get Network for User */
    $network = $this->getUser()->getNetwork();

    $tours = $em->getRepository('AppBundle:Tour')->toursTodayByNetwork($network);

    return $this->render(':app:index.html.twig', array(
        'tour' => $tours,
        'imagePath' => Constants::IMAGE_PATH_DEV,
        'imagePathGreen' => Constants::IMAGE_PATH_DEV_GREEN,
        'imagePathYear' => Constants::IMAGE_PATH_DEV_YEAR,
    ));
}

这就是我从"数据库路由重定向":

return $this->redirectToRoute('appTourOverview', array(), 301);但这会被缓存,并且永远不会创建数据库条目......

我试过了:

我从"显示路线"复制了所有内容。并让它立即返回数据库内容。

/* Get Network for User */
    $network = $this->getUser()->getNetwork()->getId();

    $tours = $em->getRepository('AppBundle:Tour')->toursTodayByNetwork($network);

    return $this->render(':checker:index.html.twig', array(
        'tour' => $tours,
        'imagePath' => Constants::IMAGE_PATH_DEV,
        'imagePathGreen' => Constants::IMAGE_PATH_DEV_GREEN,
        'imagePathYear' => Constants::IMAGE_PATH_DEV_YEAR,
    ));

而不是重定向。不幸的是,这仅在刷新后有效吗? ($tours第一次为空)

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

301重定向意味着他的页面已永久移动,此信息将立即缓存在您的浏览器中。请将该参数更改为302或只删除(这不是必需的)。然后,不幸的是你需要删除浏览器的缓存,它应该工作。

302表示重定向是临时的,浏览器不会对其进行缓存;