cakePHP1.3 管理者アクション

久々の新規案件のためやっとcakePHP1.3を触れるようになりました。
実は1.2も実務では使っていなかったため、いろいろと戸惑うことばかりです(汗)


まずは、管理者アクションからと思い、確かadmin_routingとかがあったな、と検索。
CakePHP 管理者用アクション - Shin x blog
を参考に設定していく。

しかし、1.2の情報のため、ソースを見てみるとどうやら違うらしい。

/app/config/core.php

// 1.2の場合
define('CAKE_ADMIN', 'admin');

// 1.3の場合
Configure::write('Routing.prefixes', array('admin'));

とはいえ、アンコメントするだけなので、やることは同じ。
1.2の場合は、rout.phpの修正も必要だったらしいが、1.3はこれだけらしい。


そして、controller側で、管理者アクションかどうかを判断する。

if (!empty($this->params['prefix'])
    && $this->params['prefix']=='admin'
    && !empty($this->params['admin'])) {
    $this->layout='admin';
} else {
    $this->layout='user';
}

という感じになるらしい。
もし間違ってたら指摘して下さい。

これからAuthComponentも組み込んで画面を振り分けしたりする予定です。


追記

Routing.prefixesにadminしか指定していないなら、管理者アクションかどうかの判別は、こちらの方がすっきりすると思います。

if (!empty($this->params['prefix'])
    && !empty($this->params[$this->params['prefix']])) {
    $this->layout='admin';
} else {
    $this->layout='user';
}