我的控制器上有这个:
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()
单个控制器可能有不同的布局吗?
是的,然后回调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)