我想自定义此引导程序模板。 我有这样的模板:
图1
实际上,我将引导程序模板的html放在views/layout/main.php
中。因此,模板将始终存在。但是,我想在主页上制作菜单可能与views/layout/main.php
中我的模板上的菜单不同。我想让菜单与众不同。它是这样的:
像主页这样的第一页,模板是这样的:
然后当我选择年份:2012年时,页面应该是这样的:
如您所见,pic 2和pic 3之间的差异是侧栏中的“菜单”。我想一直在pic 3中制作菜单。因此,当我打开另一个菜单时,模板保持一致。当我将源代码放在views / layout / main.php中时,它是可能的。但是,Pic 2怎么样?该页面有不同的菜单。
这是views\layout\main.php
中的模板代码:
答案 0 :(得分:1)
为不同的页面创建不同的布局。您可以使用特定操作的布局和控制器,如下所示:
如果要对Controller中的所有操作使用布局,
class SiteController extends Controller //controller name
{
public $layout="main-template-1"; //layout name
// actions
}
如果您想使用特定操作的布局而不是使用
public function actionIndex() // action name
{
$this->layout = "main-template-1"; // layout
}
答案 1 :(得分:1)
如果是想要改变的菜单项,可以在pic1和pic2中看到 从URL本身获取信息并在
上创建if条件views\layout\main.php
此外,如果您有不同的控制器,您可以通过
获取控制器和操作ID$controller = strtolower(Yii::$app->controller->id);
$action = strtolower(Yii::$app->controller->action->id);
然后根据你的动作和控制器你可以显示隐藏菜单
答案 2 :(得分:0)
您可以使用动态阻止:
<?php $this->beginBlock('block1'); ?>
...content of block1...
$this->endBlock(); ?>