0

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

public $scaffold;

我在 AppController 中尝试过

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

但这没有用。

我很感激这方面的任何帮助。

4

3 回答 3

3

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

public $scaffold = 'admin';

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

public function beforeFilter() {
  if ($this->request->prefix == 'admin') {
    $this->layout = 'scaffold';
  } 
}
于 2012-12-02T21:55:14.270 回答
1

添加这个beforeRender()

public function beforeRender() {
    if (in_array($this->request->action, array('index', 'add', 'view', 'edit'))) {
        $this->layout = 'default-scaffolds';
    }
}
于 2012-11-23T20:04:24.010 回答
0

或者,在 lib/Cake/Controller/Scaffold.php 的第 377 行(_scaffold(CakeRequest $request)-function,在 this 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 文件夹中。

于 2014-08-20T20:45:05.943 回答