PHP

CakePHPでコントローラーの呼び出しURLを変更する

CakePHPでは基本的にURLとコントローラーは一致します。
例えば
/users/index
というURLの場合、呼び出されるコントローラーは
UsersController
が呼び出されます。

ですが、これを変更したいということがかなり発生すると思います。
例えば、ユーザーに管理画面を公開する場合などに
/user/blog/add
のようにすると
UserBlogController
が呼び出されるように変更する方法です。
Config/routes.phpを修正します。

例えば、/user/blog/をUserBlogControllerに設定する場合は
[php]
Router::connect('/user/blog/*', array('controller' => 'user_blog'));
[/php]
のように設定することで可能になります。

ここまで来ると、コントローラーやビューの階層構造をURLに合わせたくなるのですが、これは今のところ見送っています。
機能が多ければ、せざるを得ないと思いますがコントローラーを増やすたびに設定を変更する必要があるみたいで現実的ではないのと、やっぱりフレームワークの作法に従ったほうがよいだろうという思いからです。

-PHP

© 2025 ビー鉄のブログ Powered by AFFINGER5