
CakePHP2.x で Admin Routing する方法。
管理者用URL : http://example.com/admin/topics
ユーザ用URL : http://example.com/topics
というように、ユーザ用ページのURLと、管理者用URLをアクションで切り替えるおなじみの方法ですが、これの CakePHP2 系統での設定方法です。
CakePHPのバージョンは、2.3.6です。
管理者用のURLを作成する方法
/app/config/core.php ファイルの124行目付近
[php]
Configure::write('Routing.prefixes', array('admin'));
[/php]
という行のコメントを外す。
あとは管理者用としても使いたいコントローラーのアクション名に admin_ をつけるだけ。
例えば、TopicsController の form アクションを管理者用にしたいのであれば、
[php]
public function admin_form() {
// 処理
}
[/php]
とし、同じように"admin_"をつけた view 用のファイル(admin_form.ctp)を用意します。
ちなみにこの場合は
http://example.com/admin/topics/form
が管理者用のURLとなります。
管理画面用のレイアウトを呼ぶ
同時に、管理画面用のレイアウトを呼ぶ場合。
app/View/Layouts/ に レイアウト(admin.ctp とでもします) を追加し、以下のコードを、AppController.php の、beforeRender() に追記。
[php]
function beforeRender()
{
/**
* 管理者用レイアウトを呼び出す
*
*/
if ( Configure::read('Routing.prefixes') && !empty($this->params['admin']) ) {
$this->layout = 'admin';
}
}
[/php]
これで、管理画面用のレイアウトファイルが使えるようになります。簡単ですね!
[tgAmazonItemLookup asin="B00A0CY4QE" related="1"]