是否有人建议如何根据当前视图自定义整个网站布局,而不是与视图关联的数据?在大多数情况下,我们使用的模型具有关联的俱乐部ID,因此必须根据当前页面与哪个俱乐部相关联来自定义布局标题图像,css等。
到目前为止,这是我的想法。 调用与当前控制器关联的模型中的函数,该函数为您提供布局参数。 在appController中,beforeRender设置俱乐部的布局参数。
这似乎不太优雅,因为每个模型都必须具有此功能,如果在app控制器中定义了beforeRender,我将如何调用正确的模型?
一些提示会很棒!
答案 0 :(得分:1)
罗素,
您可能需要查看this。
答案 1 :(得分:0)
只需在名为“dashboard.ctp”的布局中创建一个文件,然后如果您的视图是索引,那么您的函数将是这样的......
function index() {
$this->User->recursive = 2;
$this->layout = 'dashboard';
$this->set('users', $this->paginate());
}
重要的一行是 $ this-> layout ='dashboard';
答案 2 :(得分:0)
我们最终要做的是在app控制器中检查当前正在加载网站的域,然后根据此信息设置布局(为站点需要为每个域定制一个布局)。不是一个很好的解决方案,但它工作正常。