2009-07-02 7 views
6

リダイレクトとレンダリング以外の特定のビューページにコントローラをリダイレクトするコマンドはありますか?CakePHPのリダイレクトとレンダリングの違いは何ですか?

私は

$this->redirect('/forms/homepage/'.$userId); 

としてリダイレクトを持っている。しかし、私は

$this->render('/forms/homepage/'.$userId); 

を与える場合には、そのページにリダイレクトされません。

何か問題がありますか?

答えて

12

redirect()を呼び出すと、HTTP redirectが発行されます。 CakePHPが単に停止するので、リダイレクト後に何も起こりません。リダイレクトコールの後に置いたものは実行されません。代わりに、ブラウザはリダイレクト先のURLに新しいHTTP GETを発行するだけです。

render()の呼び出しは、単にビューをロードします。これは、URLではなく、ビューへのパスをとります。リダイレクトされません。あなたのケースで$ userIDが '101'であると仮定してください。レンダリングする呼び出しは()以下のファイルをロードしようとするだろう:そのファイルが存在しないため

アプリ/ビュー/フォーム/ホームページ/ 101.ctp

を、何も起こりません。

関連する問題