1

我的控制器上有这个:

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

public function login()
{

}
public function main_board()
{

}

}

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

login() 必须有 layout:login.ctp main_board() 必须有 layout:main_board()

单个控制器是否有可能具有不同的布局?

4

1 回答 1

5

是的,然后将 beforeFilter 回调到您的控制器中,例如:

class EmployeeAccountsController extends AppController {

  protected $layout = 'login';

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

      $this->layout = $this->layout;
  }
}

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

编辑:只定义布局,特别是为了行动

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

public function action2() {   
 $this->layout = 'layout2';
}
于 2012-06-04T08:28:18.600 回答