【CakePHP】プレフィックスルーティングを使う
バージョン:CakePHP 2.x
管理画面をつくる時などに /admin/アクション名/…/ のようなURLでアクセスできるようにしたい場合があるかと思います。
色々と方法はあると思いますが、ここではプレフィックスルーティングを使った方法を試してみます。
まず、プレフィックスルーティングを有効にします。
/** * Uncomment the define below to use CakePHP prefix routes. * * The value of the define determines the names of the routes * and their associated controller actions: * * Set to an array of prefixes you want to use in your application. Use for * admin or other prefixed routes. * * Routing.prefixes = array('admin', 'manager'); * * Enables: * `admin_index()` and `/admin/controller/index` * `manager_index()` and `/manager/controller/index` * */ //Configure::write('Routing.prefixes', array('admin')); //上記コメントをはずします Configure::write('Routing.prefixes', array('admin'));
上記では「admin」というプレフィックスを使用することになります。
また、複数の設定を行いたい場合は下記のようにします。
Configure::write('Routing.prefixes', array('admin', 'manager'));
設定を行い「admin_xxx」や「manager_xxx」というアクションを作成すると、
「/admin/コントローラ名/xxx」のようにアクセスできます。
admin_index() → /admin/コントローラ名/index
manager_index() → /manager/コントローラ名/index
また、Viewのファイル名は「admin_index.ctp」や「manager_index.ctp」となります。
例えば、、、
class TestController extends AppController { public function admin_add() { ..... ..... } }
このようなコントローラーを作成すると、
/admin/test/add
というURLでアクセスできることになります。
Viewのファイル名は「app/views/test/admin_add.ctp」です。