【CakePHP】プレフィックスルーティングを使う

2019年7月29日

バージョン: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」です。

スポンサーリンク