CakePHPでリダイレクトの設定をしてみます。
サンプルコード
リダイレクトにはredirect()のメソッドを使用します。
src\Controller\RedirectController.php
<?php namespace App\Controller; class RedirectController extends AppController { public function index() { return $this->redirect( ['controller' => 'Test', 'action' => 'index'] ); } }
http://localhost:8765/testにリダイレクトされました。
引数は相対URLや絶対URLでも指定できます。
src\Controller\RedirectController.php
<?php namespace App\Controller; class RedirectController extends AppController { public function index() { return $this->redirect('/test'); } }
src\Controller\RedirectController.php
<?php namespace App\Controller; class RedirectController extends AppController { public function index() { return $this->redirect('http://localhost:8765/test'); } }
http://localhost:8765/testにリダイレクトされました。
actionにデータを渡すこともできます。
src\Controller\RedirectController.php
<?php namespace App\Controller; class RedirectController extends AppController { public function index() { $data = 'noel'; return $this->redirect( ['controller' => 'Test', 'action' => 'index', $data] ); } }
http://localhost:8765/test/index/noelにリダイレクトされました。
パラメータやハッシュを設定したい場合、以下のように指定します。
src\Controller\RedirectController.php
<?php namespace App\Controller; class RedirectController extends AppController { public function index() { $data = 'noel'; return $this->redirect( [ 'controller' => 'Test', 'action' => 'index', '?' => [ 'name' => 'noel', 'year' => 7 ], '#' => 'method' ] ); } }
http://localhost:8765/test?name=noel&year=7#methodにリダイレクトされました。
【参考サイト】
コメントが承認されるまで時間がかかります。