Cakephp 3中的布局?

3
大家好!我有一个Cakephp 3项目。文件src/Template/Layout/Default.ctp包含代码(标头、页脚等)自动导入某些视图,例如src/Template/User/index.ctpsrc/Template/Posts/add.ctp

但这是管理员面板,现在我想为前端构建视图,不想使用相同的布局。如何为src/Template/Home/index.ctp使用不同的标题/页脚布局?

这是我的文件夹

[1]

感谢您的阅读!

2个回答

9

您需要在Controller中设置布局或者定义一些条件来决定前端View应该加载哪一个/src/View/AppView.php

请参阅文档

对于控制器方法:

// Set the layout.
$this->viewBuilder()->setLayout('admin');

// Before 3.4
$this->viewBuilder()->layout('admin');

// Before 3.1
$this->layout = 'admin';

2
我讨厌这个...为什么CakePHP开发人员会做出这样脆弱的东西,每个版本都废弃了。 - aswzen
如果其他人也遇到了这个问题 - 我使用的是Cake 3.8,只有最后一个选项对我有效... - almcnicoll

0
use Cake\Event\Event;

public function beforeFilter(Event $event)
{
    parent::beforeFilter($event);
    $this->viewBuilder()->layout('admin');
}

在您的控制器中添加以下代码 => 将更改整个控制器的操作布局以进行呈现 'admin'

要更改一个操作布局,请参考玛丽的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接