不同视图上的不同布局cakephp 2.0

Joh*_*uel 1 php cakephp

我的控制器上有这个:

class EmployeeAccountsController extends AppController
{
var $layout = 'login';

public function login()
{

}
public function main_board()
{

}

}
Run Code Online (Sandbox Code Playgroud)

我想要做的是在调用login()视图和main_board视图时分配不同的布局.

login()必须具有布局:login.ctp main_board()必须具有layout:main_board()

单个控制器可能有不同的布局吗?

Aur*_*kus 5

是的,然后回调beforeFilter进入你的控制器,如:

class EmployeeAccountsController extends AppController {

  protected $layout = 'login';

  public function beforeFilter() {
      parent::beforeFilter(); //call parent before filter

      $this->layout = $this->layout;
  }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,EmployeeAccounts控制器将具有所有视图的登录布局.

编辑:只需定义布局,尤其是动作

public function action() {   
 $this->layout = 'layout1';
}

public function action2() {   
 $this->layout = 'layout2';
}
Run Code Online (Sandbox Code Playgroud)