代码之家  ›  专栏  ›  技术社区  ›  Dirk J. Faber

在symfony中重新定向两步

  •  0
  • Dirk J. Faber  · 技术社区  · 7 年前

    使用symfony 4,我有一个路由来编辑一个实体,该实体在提交之后将用户重定向到另一个路由,如下所示:

    if ($form->isSubmitted() && $form->isValid()) {
    
            //....
    
            $em->persist($thisEntity);
            $em->flush();
    
            return $this->redirectToRoute('this_entity_index');
        }
    

    index page 通过路由呈现的实体的 this_entity_index 我显示按钮来编辑一个实体,所以这个重定向是有意义的。但是,我有一个不同的 show page (通过 show_route )对于此实体,它还包含一个路由到编辑路由的编辑按钮。编辑后,用户将再次重定向到 索引页 实体的在这种情况下,我希望用户重定向到 显示页面 在这种情况下,本质上,我需要向用户发送两个步骤。 如果我使用:

    return $this->redirect($request->headers->get('referer'));
    

    用户只需返回到编辑表单(后退一步)。也许有一个简单的解决方案可以将用户送回两个步骤?这样我就可以将用户发送回 索引页 , 显示页面 或者用户来自的任何其他页面。我必须使用用户会话吗?如有任何建议,我们将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Dirk J. Faber    7 年前

    表单中添加的隐藏输入:

    <input type="hidden" name="referer" value="{{app.request.headers.get('referer')}}"/>
    

    if ($form->isSubmitted() && $form->isValid()) {
    
        //....
    
        $em->persist($thisEntity);
        $em->flush();
    
        return $this->redirect($request->request->get('referer'));
    }
    
    推荐文章