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');
    }
}

?>
  1. <?php
  2. function placeOrder() {
  3. //ここは注文完了のロジック
  4. if($success) {
  5. $this->redirect('/orders/thanks');
  6. } else {
  7. $this->redirect('/orders/confirm');
  8. }
  9. }
  10. ?>

redirect() の第2引数は、リダイレクトの際の HTTP ステータスコードを指定します。リダイレクトの状況によっては、 301 (永久的な移転)や 303 (see other) を指定したくなるかもしれません。

このメソッドは、第3引数に false をセットしなければ、リダイレクト後に exit() が実行されます。