CakePHPでのレイアウトは Contorller::$layout で指定できるのだけど
管理画面とかユーザー用ページを作る場合に、
最初はAppControllerのサブクラス作ってそれぞれ処理を分ける?って考えたけど、
Cakeっぽくなさそうだなーと思ってメジャーそうなものを調べてみた。
行き着いた結果がメジャーかどうかはわからないけど、規約どおりだったのでこんな感じで
ControllerのbeforeFilter()内で、prefixを見て判断する。
ex.)
function beforeFilter() {
if (isset($this->params[‘prefix’]) && $this->params[‘prefix’] == ‘admin’) {
$this->layout = ‘admin';
} else {
$this->layout = ‘rewanko';
}
ちなみに、$this->params[‘prefix’] の中にはコントローラーのパラメータが入っています。
最近のコメント