やりたい事
index.ctpで表示されるナビバーのリンクをクリックすると、指定したコントーラが呼ばれるようにしたい!
controllerディレクリト直下に新しく作成したディレクトリにあるcontrollerファイルを呼び出したい!
わからない事
階層化したコントローラのルーティング(routes.php)は色々調べ試しましたが、上手く行きませんでした。
なので、ルーティングの正しい方法を教えて頂ければと思います。
また、もし違うところで間違えているようでしたら、そちらのご指摘も宜しくお願いします。
ディレクトリ構造
app - config - routes.php - src - Controller - Test - Test01.php ←呼び出したい - Test02.php ←呼び出したい - Template - Test - Test01 - index.ctp - Test02 - index.ctp
ソースコード
config/routes.php
$routes->connect('/test/test01/*', ['controller' => 'Test01, 'action' => 'index']);
Controller/Test/Test01.php
?php namespace App\Controller\Test; use App\Controller\AppController; class Test01Controller extends AppController { /** * Index method * * @return \Cake\Http\Response|void */ public function index() { $about = $this->paginate($this->Test01); $this->set(compact('Test/Test01')); }
Template/Test/Test01/index.ctp
<nav class="navbar navbar-dark header"> <div class="header-div"> <a class="navbar-brand mb-0" href="/home/index">テスト</a> <button id="navbar-button" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar" aria-controls="navbar" aria-expanded="false"> <span class="navbar-toggler-icon"></span> </button> </div> <div class="collapse navbar-collapse" id="navbar"> <ul class="navbar-nav mr-auto" id="nav-items"> <li class="nav-item"> **<a class="nav-link" href="/test/test01/index">テスト01</a>** </li> <li class="nav-item"> **<a class="nav-link" href="/test/test02/index">テスト02</a>** </li> </ul> </div> </nav>
結果
URL
http://localhost/test/test01/index
こうしたい
http://localhost/app/test/test01/index
環境
cakePHP ver3.6
MAMP ver5.0.1
あなたの回答
tips
プレビュー