CakePHPでURLを自由に設定する方法(routes.php)
暑いですね、ichikawaです。
今回は、PHPのフレームワークCakePHPを使った際に自由にURLを設定する方法をご紹介いたします。
CakePHPにおける基本的なURL
CakePHPの基本的なURLの構造は、以下のような形です。
http://○○/実行するコントローラー名/実行するアクション名/
でも、これを変更したい時もありますよね。そんな時に活躍するのはこちら!
routes.php
デフォルトだとapp/config/以下にあります。
この「routes.php」を変更することによって、CakePHPで自由にURLを設定することができます。
では実際にやってみましょう!
「http://○○/bashloger」でblogコントローラーのmemberメソッドにアクセスしたい
そのような時は以下の様に書きます。
Router::connect('/bashloger', array('controller' => 'blog', 'action' => 'member'));
例えば「https://bashalog.c-brains.jp/bashloger」にアクセスすることで、blogコントローラーのmemberメソッドを呼びだすことができます。
Router::connectメソッドの第2引数で渡す配列の要素 | 意味 |
---|---|
controller | 実行するコントローラーの名前 |
action | 実行するアクションの名前 |
plugin | 実行するプラグインの名前 |
それ以外 | アクションに渡されるパラメータ |
URLでアクション名を自由に設定したい
そのような時は以下の様に書きます。
Router::connect('/bashaloger/:action', array('controller' => 'member'));
例えば「https://bashalog.c-brains.jp/bashloger/list」にアクセスすることで、memberコントローラーのlistメソッドを呼びだすことができます。
アクション部分は呼びだしたいメソッドを自由に設定できます。
URLのパラメーターを自由に設定したい
そのような時は以下の様に書きます。
Router::connect('/bashaloger/:name/:action', array('controller' => 'blog'));
例えば「https://bashalog.c-brains.jp/bashloger/ichikawa/list」にアクセスすることで、blogコントローラーのlistメソッドを呼びだすことができます。
そして、$this->params['name']で「ichikawa」の値を参照できます。
URLのアクション部分は呼びだしたいメソッドを、「:name」の部分は$this->params['name']で取得したいパラメータを自由に設定できます。
参考サイトなど