3.5.3.2 フロー制御
See comments for this section
3.5.3.2.1 redirect
redirect(string $url, integer $status, boolean $exit)
もっともよく使用するフロー制御のメソッドは、redirect() です。このメソッドは、第1引数に CakePHP 流の相対 URL を指定します。 ユーザーが首尾よく注文したとき、領収書の画面にリダイレクトさせたいかもしれません。
<?php
function placeOrder() {
//ここは注文完了のロジック
if($success) {
$this->redirect('/orders/thanks');
} else {
$this->redirect('/orders/confirm');
}
}
?>
<?phpfunction placeOrder() {//ここは注文完了のロジックif($success) {$this->redirect('/orders/thanks');} else {$this->redirect('/orders/confirm');}}?>
redirect() の第2引数は、リダイレクトの際の HTTP ステータスコードを指定します。リダイレクトの状況によっては、 301 (永久的な移転)や 303 (see other) を指定したくなるかもしれません。
このメソッドは、第3引数に false をセットしなければ、リダイレクト後に exit() が実行されます。
3.5.3.2.2 flash
flash(string $message, string $url, integer $pause)
flash(string $message, string $url, integer $pause)
flash() メソッドも、ページ遷移に使用します。 flash() メソッドでは、別の URL へ移る前にメッセージを表示するところが redirect() メソッドと異なります。
第1引数は、表示するメッセージです。そして、第2引数は、CakePHP 流の相対 URL です。CakePHP は、$pause (第3引数) 秒間、メッセージを表示ます。
ページ遷移後のメッセージ表示については、SessionComponent クラスの setFlash() メソッドを参照ください。
