3.5.3.2 流程控制
See comments for this section
3.5.3.2.1 redirect
redirect(string $url, integer $status, boolean $exit)
redirect()应该是你最经常使用的流程控制的方法之一。该方法接收的第一个参数是CakePHP形式的相对URL。当用户成功地下了订单之后,你也许会希望将他带到收款台前执行下一步操作。
function placeOrder() {
//这里是订单部分的逻辑
if($success) {
$this->redirect(array('controller' => 'orders', 'action' => 'thanks'));
} else {
$this->redirect(array('controller' => 'orders', 'action' => 'confirm'));
}
}
function placeOrder() {//这里是订单部分的逻辑if($success) {$this->redirect(array('controller' => 'orders', 'action' => 'thanks'));} else {$this->redirect(array('controller' => 'orders', 'action' => 'confirm'));}}
redirect()接收的第二个参数允许你定义一个HTTP的状态码(status code)比如视具体情况,你可能选择用301(永久性转移)或者303(see other)。
在第三参数没有被设定为false的情况下,重定向结束之后该方法会自动调用exit()结束程序。
3.5.3.2.2 flash
flash(string $message, string $url, integer $pause)
同样,flash()方法也会将用户重定向到一个新的页面。不同之处在于flash()方法在将用户转向到新页面之前会向其显示一条提示信息。
传递给该方法的第一个参数就是提示信息的内容,第二个参数则是CakePHP形式的相对URL。CakePHP将会显示这条信息($message)$pause秒,然后执行转向。
有关页面内提示信息(flash message)的显示请参看SessionComponent的setFlash()方法。
