脚手架的其他布局

时间:2012-11-23 19:00:54

标签: cakephp layout scaffolding

我的默认布局是default.ctp,但是当我在控制器中使用时,我想在脚手架视图中使用另一个布局default-scaffolds.ctp:

public $scaffold;

我试过AppController

    public function beforeScaffold() {
        $this->layout = 'default-scaffolds';
}

但这没效果。

我很感激任何帮助。

3 个答案:

答案 0 :(得分:3)

我刚遇到同样的问题并通过指定路由器前缀'admin',设置

解决了这个问题
public $scaffold = 'admin';

在控制器和AppController中我添加到beforeFilter()方法

public function beforeFilter() {
  if ($this->request->prefix == 'admin') {
    $this->layout = 'scaffold';
  } 
}

答案 1 :(得分:1)

添加此beforeRender()

public function beforeRender() {
    if (in_array($this->request->action, array('index', 'add', 'view', 'edit'))) {
        $this->layout = 'default-scaffolds';
    }
}

答案 2 :(得分:0)

或者,在lib / Cake / Controller / Scaffold.php中,在第377行(_scaffold(CakeRequest $request) - 函数中,在此if:if (in_array($request->params['action'], $this->scaffoldActions))中,只需添加以下行:

$this->layout = 'default_scaffold'; // this is a custom-added line in order to activate the default CSS file when scaffolding

并将default_scaffold.ctp添加到Layout文件夹中。