我的默认布局是 default.ctp,但是当我在控制器中使用时,我只想将另一个布局 default-scaffolds.ctp 用于脚手架视图:
public $scaffold;
我在 AppController 中尝试过
public function beforeScaffold() {
$this->layout = 'default-scaffolds';
}
但这没有用。
我很感激这方面的任何帮助。
我的默认布局是 default.ctp,但是当我在控制器中使用时,我只想将另一个布局 default-scaffolds.ctp 用于脚手架视图:
public $scaffold;
我在 AppController 中尝试过
public function beforeScaffold() {
$this->layout = 'default-scaffolds';
}
但这没有用。
我很感激这方面的任何帮助。
我刚刚遇到同样的问题并通过指定路由器前缀'admin'来解决它,设置
public $scaffold = 'admin';
在控制器和 AppController 中我添加到 beforeFilter() 方法
public function beforeFilter() {
if ($this->request->prefix == 'admin') {
$this->layout = 'scaffold';
}
}
添加这个beforeRender()
public function beforeRender() {
if (in_array($this->request->action, array('index', 'add', 'view', 'edit'))) {
$this->layout = 'default-scaffolds';
}
}
或者,在 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 文件夹中。