Redirect Symfony中重定向和转发的区别是什么?

Redirect Symfony中重定向和转发的区别是什么?,redirect,symfony1,Redirect,Symfony1,我想知道以下两者之间的区别: $this->forward("module", "action"); 及 我的第一个猜测是,一个暗示一个新的请求,而另一个暗示一个新的请求,但我不确定。在某些情况下,操作执行通过请求一个新的操作执行来结束。例如,在POST请求中处理表单提交的操作通常在更新数据库后重定向到另一个操作。另一个例子是操作别名:索引操作通常是显示列表的一种方式,实际上是转发到列表操作 action类提供了两种方法来执行另一个操作: $this->forward('other

我想知道以下两者之间的区别:

$this->forward("module", "action");


我的第一个猜测是,一个暗示一个新的请求,而另一个暗示一个新的请求,但我不确定。

在某些情况下,操作执行通过请求一个新的操作执行来结束。例如,在
POST
请求中处理表单提交的操作通常在更新数据库后重定向到另一个操作。另一个例子是操作别名:索引操作通常是显示列表的一种方式,实际上是转发到列表操作

action类提供了两种方法来执行另一个操作:

$this->forward('otherModule', 'index');
如果该操作将调用转发给另一个操作:

$this->forward('otherModule', 'index');
如果该操作导致web重定向:

$this->redirect('otherModule/index');
$this->redirect('http://www.google.com/');
在重定向或转发之间的选择有时很棘手。要选择最佳解决方案,请记住转发是应用程序内部的,对用户是透明的。就用户而言,显示的URL与请求的URL相同。相反,重定向是指向用户浏览器的消息,包括来自浏览器的新请求和最终结果URL的更改


如果使用
method=“post”
从提交的表单调用该操作,则应始终执行重定向。主要优点是,如果用户刷新生成的页面,表单将不会再次提交;此外,后退按钮通过显示表单而不是询问用户是否要重新提交
POST
请求的警报来按预期工作。

这是源代码的原始文本,您至少应该指定源代码@e-satis你为什么打电话给我@domin27?@e-satis只是为了提供关于你主题的完整文档!这是一个很好的答案,但为什么转发在某些具有身份验证过程的应用程序上起作用而重定向不起作用呢?