设置或更改应用程序的布局

设置整个应用程序的默认布局。即,在/src/Template/Layout/admin.ctp 中创建布局文件

class AppsController extends Controller {

    public function beforeFilter(Event $event) {
        parent::beforeFilter($event);
        $this->viewBuilder()->layout('admin'); // For Version >= 3.1 or
        $this->layout = 'admin'; // for version < 3.1
        
        // your other code should be here
    }
}

为应用程序中的特定操作设置默认布局。即,应用程序在/src/Template/Layout/login.ctp 的登录页面中具有不同的布局

class UsersController extends Controller {

    public function login() {

        $this->viewBuilder()->layout('login'); // For Version >= 3.1 or
        $this->layout = 'login'; // for version < 3.1
        
        //your other code should be here
    }
}

更改特定 Controller 的布局。因为,对于特定控制器的所有方法,你需要不同的布局

类 UsersController 扩展 Controller {

    public function beforeFilter(Event $event) {
        parent::beforeFilter($event);

        $this->viewBuilder()->layout('user_layout'); // For Version >= 3.1 or
        $this->layout = 'user_layout'; // for version < 3.1
        
        //your other code should be here
    }
}