在cakephp中分配布局

tec*_*_28 3 php cakephp cakephp-1.3

我们可以在那个特定的控制器中为整个控制器定义一个布局吗?我之前已经使用了appcontroller的过滤器之前用于此目的,但它不再解决它.所以我需要在控制器中应该有一些适用于布局的布局定义该控制器的所有动作.

问候

小智 17

用它:

在你的行动里面

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

你必须在view/layout/mylayout.ctp中创建该布局

或者将此功能添加到控制器以设置控制器的每个动作的布局

  function beforeFilter() {
    parent::beforeFilter();
        $this->layout = 'mylayout';
  }
Run Code Online (Sandbox Code Playgroud)


Vin*_*ins 6

做这样的事情的最好方法

var $layout = 'my_account';
Run Code Online (Sandbox Code Playgroud)

这适用于整个控制器.添加此代码后,它将看起来像这样.

class MyAccountsController extends AppController {
    var $name = 'MyAccounts';
    var $components = array('Email');
    var $layout = 'my_account';
Run Code Online (Sandbox Code Playgroud)

如果您不想使用某些操作,可以在此操作中明确定义

function my_action(){
    $this->layout = 'another_layout';
}
Run Code Online (Sandbox Code Playgroud)

现在这my_action将采取另一种布局,其余的动作将采取my_account布局


Tom*_*yDo 5

适用于CakePHP 3.0红色天鹅绒

布局文件位置:

在此输入图像描述

新的参数:

$this->viewBuilder()->layout("loginUI");
Run Code Online (Sandbox Code Playgroud)

*"loginUI"是文件名布局