e-s*_*tis 18 redirect symfony1
我想知道之间的区别:
$this->forward("module", "action");
Run Code Online (Sandbox Code Playgroud)
和
$this->redirect("module/action");
Run Code Online (Sandbox Code Playgroud)
我的第一个猜测是,一个意味着一个新的请求,而另一个不是,但我不确定.
Pet*_*r D 38
在某些情况下,操作执行以请求新操作执行结束.例如,处理POST请求中的表单提交的操作通常在更新数据库后重定向到另一个操作.另一个例子是动作别名:索引动作通常是一种显示列表的方式,实际上是转发到列表动作.
action类提供了两种执行另一个操作的方法:
如果操作将呼叫转发给另一个操作:
$this->forward('otherModule', 'index');
Run Code Online (Sandbox Code Playgroud)
如果操作导致Web重定向:
$this->redirect('otherModule/index');
$this->redirect('http://www.google.com/');
Run Code Online (Sandbox Code Playgroud)
重定向或转发之间的选择有时是棘手的.要选择最佳解决方案,请记住,转发是应用程序的内部解决方案,对用户是透明的.就用户而言,显示的URL与请求的URL相同.相反,重定向是向用户浏览器发送的消息,涉及来自它的新请求以及最终结果URL的更改.
如果从提交的表单中调用操作method="post",则应始终执行重定向.主要优点是,如果用户刷新生成的页面,则不会再次提交表单; 此外,后退按钮按预期工作,方法是显示表单,而不是询问用户是否要重新提交POST请求的警报.
| 归档时间: |
|
| 查看次数: |
13786 次 |
| 最近记录: |