$this->redirect( アドレス );これで、指定のアドレスにリダイレクトします。アドレスさえ正確に指定すれば、どのサイトのどのページにもリダイレクトできます。ただし、見ればわかるようにアドレスバーに表示されるアドレスもリダイレクト先のものが表示されますから、利用者には明らかに「なんか別のページに飛ばされたな」というのがわかる形のリダイレクトですね。
$this->setAction( アクション名 );引数にアクション名を指定すると、そのコントローラー内にある指定のアクションにフォワードされます。下のサンプルで、indexアクションのredirectをsetActionに変えて実行してみましょう。Webブラウザに表示されるアドレスは/indexのままですが、表示される内容は/otherに変わっています。利用者からは、それが別のアクションの表示だとはまったくわかりません。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※一般的なリダイレクト
<?php
App::uses('AppController', 'Controller');
class SampleController extends AppController {
public function index() {
$this -> autoRender = false;
$this->redirect("./other/");
}
public function other(){
$this -> autoRender = false;
echo "<html><head></head><body>";
echo "<h1>サンプルページ</h1>";
echo "<p>これはもう1つのページです。</p>";
echo "</body></html>";
}
}
※別のアクションへのフォワード
public function index() {
$this -> autoRender = false;
$this->setAction("other");
}
| << 前へ | 次へ >> |