[CakePHP]ルーティング設定で表示するページ、階層を変更する

CakePHPのルーティングについては、「CakePHP 3.8 Red Velvet Cookbook」に詳細が書かれているため、こまめにアクセスし参考にさせていただいています。ここでは復習のため実際にCakePHPで設定を変更し表示を試してみました。

「ルーティング」を設定することで、トップページで表示させるコントローラー、ビューの指定やその階層下の表示を複数設定することが可能です。設定を間違えてもデバックモードであればエラー画面で叱られますので、どこを直せばよいのかすぐに解ります。

ルーティング設定ファイルの場所

/config/routes.php

CakePHPをインストールするとデフォルトで用意されているルーティング設定

下記デフォルトの設定で’/’ (基本のパス)にアクセスすると、’/src/Controller/PagesController.php’内の’function display()’(displayアクションメソッド)にアクセス。ビューは’/src/Template/Pages/home.ctp’を表示します。

$routes->connect(‘/’, [‘controller’ => ‘Pages’, ‘action’ => ‘display’, ‘home’]);

デフォルトからオリジナルの設定に変更するケース

下記の設定で’/’ (基本のパス)にアクセスすると、トップページでは’ShopsController.php’の内容を表示します。具体的には、’/src/Controller/ShopsController.php’内の’function index()’(indexアクションメソッド)にアクセス。ビューは’/src/Template/Shops/index.ctp’を表示します。

$routes->connect(‘/’,[‘controller’ => ‘Shops’, ‘action’ => ‘index’]);

トップ以外の階層を追加するケース

設定例1

下記の設定では’/login/’というパスにアクセスした場合、’LoginController.php’内の’function login()’(loginアクションメソッド)にアクセスし、ビューの’/src/Template/Login/login.ctp’を表示します。

$routes->connect(‘/login/’, ‘Login::login’);

設定例2

下記の設定では、’/shops/rockmusic/’というパスにアクセスした場合、’ShopsController.php’内の’function view()’(viewアクションメソッド)にアクセスし、ビューの’/src/Template/Shops/view.ctp’を表示します。

$routes->connect(‘/shops/rockmusic/*’, ‘Shops::view’);



関連記事

  1. [LaravelとCakePHPの機能比較]

  2. [CakePHP3]2つのデータベースを設定し同時に使用する

  3. [CakePHP]bakeでファイルを生成

  4. [CakePHP4]AWS Linux2にPHP7.3とCakePHP…

  5. [CakePHP3]DocumentRootとルーティング情報の変更

最近の記事

PAGE TOP