CakePHPでURLを自由に設定する方法(routes.php)

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'));

例えば「http://bashalog.c-brains.jp/bashloger」にアクセスすることで、blogコントローラーのmemberメソッドを呼びだすことができます。

Router::connectメソッドの第2引数で渡す配列の要素意味
controller実行するコントローラーの名前
action実行するアクションの名前
plugin実行するプラグインの名前
それ以外アクションに渡されるパラメータ

URLでアクション名を自由に設定したい

そのような時は以下の様に書きます。

Router::connect('/bashaloger/:action', array('controller' => 'member'));

例えば「http://bashalog.c-brains.jp/bashloger/list」にアクセスすることで、memberコントローラーのlistメソッドを呼びだすことができます。
アクション部分は呼びだしたいメソッドを自由に設定できます。

URLのパラメーターを自由に設定したい

そのような時は以下の様に書きます。

Router::connect('/bashaloger/:name/:action', array('controller' => 'blog'));

例えば「http://bashalog.c-brains.jp/bashloger/ichikawa/list」にアクセスすることで、blogコントローラーのlistメソッドを呼びだすことができます。
そして、$this->params['name']で「ichikawa」の値を参照できます。
URLのアクション部分は呼びだしたいメソッドを、「:name」の部分は$this->params['name']で取得したいパラメータを自由に設定できます。

より詳しく知りたい方は、こちらの資料がおすすめです。

参考サイトなど

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ