我的默认布局是default.ctp,但是当我在控制器中使用时,我想在脚手架视图中使用另一个布局default-scaffolds.ctp:
public $scaffold;
我试过AppController
public function beforeScaffold() {
$this->layout = 'default-scaffolds';
}
但这没效果。
我很感激任何帮助。
答案 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文件夹中。