使用CakePHP根据当前记录自定义布局

时间:2011-03-08 01:51:32

标签: cakephp layout model controller

是否有人建议如何根据当前视图自定义整个网站布局,而不是与视图关联的数据?在大多数情况下,我们使用的模型具有关联的俱乐部ID,因此必须根据当前页面与哪个俱乐部相关联来自定义布局标题图像,css等。

到目前为止,这是我的想法。 调用与当前控制器关联的模型中的函数,该函数为您提供布局参数。 在appController中,beforeRender设置俱乐部的布局参数。

这似乎不太优雅,因为每个模型都必须具有此功能,如果在app控制器中定义了beforeRender,我将如何调用正确的模型?

一些提示会很棒!

3 个答案:

答案 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控制器中检查当前正在加载网站的域,然后根据此信息设置布局(为站点需要为每个域定制一个布局)。不是一个很好的解决方案,但它工作正常。