php - 在哪里/如何在 yii View 中包含导航栏

标签 php yii

我是 PHP 框架和 yii 的新手,我正在尝试了解 View /布局的工作原理。这就是我目前理解如何布局页面模板的方式:

<!DOCTYPE html>
<html>
<head>

</head>
<body>

    <div id="page_wrp">

        <?php include 'includes/top_right_nav.php' ?>

        <div id="content_wrp"> 

            <div id="content">

            </div>

        </div><!--#content_wrp-->

        <?php include 'includes/main_nav.php' ?>

    </div><!--#page_wrp-->

</body>

我理解基本的 yii 方式更像是这样的:

<?php /* @var $this Controller */ ?>
<!DOCTYPE>
<html>
<head>
    <title><?php echo CHtml::encode($this->pageTitle); ?></title>
</head>

<body>

<div class="container" id="page">

<div id="header">
    <div id="logo"><?php echo CHtml::encode(Yii::app()->name); ?></div>
</div><!-- header -->

<div id="mainmenu">
            <!--
                DON'T WANT TO USE ZII.WIDGETS FOR MENU
                WANT TO KNOW BEST WAY TO INCLUDE MY ONW NAVIAGTION MENU-
            ->
    <?php $this->widget('zii.widgets.CMenu',array('...')); ?>
</div><!-- mainmenu -->

<?php echo $content; ?>

<div id="footer"></div><!-- footer -->

我不明白的是在 yii/MVC 上下文中包含我自己的导航栏的最佳实践/类似方式是什么。我仍然可以像上面那样使用 include 还是必须使用 zii.widgets?如果可以使用includes,我应该把文件放在哪里?

任何帮助将不胜感激。

最佳答案

您不必使用 Yii 小部件,但建议使用它们,它们非常灵活。

在布局文件夹中为菜单标记创建一个 View 文件,例如 _myMenu.php

_menu.php

<ul>    
    <li>menu item 1</li>
    <li>menu item 2</li>
</ul>

然后在布局中使用 renderPartial() 在布局中渲染 _menu.php 部分 View 。

main.php

<div id="mainmenu">
    <?php $this->renderPartial("//layouts/_menu"); ?>
</div>

这是一个非常简单的解决方案,如果您想让菜单更加动态,您可以向 Controller 添加一个方法来处理这个问题。

关于php - 在哪里/如何在 yii View 中包含导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21202478/

相关文章:

php - Laravel Eloquent 查询 - 无法转换为 int

php - 如何在 HTML 中不呈现 TAB 字符

php - 我有来自 mysql 的数据,但错误地转换为 JSON

javascript - 如何在 Yii javascript 中使用复选框隐藏或显示文本字段

php - Yii2 按关系排序

php - JS/jQuery/PHP : trying to generate an URL using PHP variables

PHP 数组保存到文本文件

php - 加载自定义 Yii 组件

php - 尝试使用 Yiimail 从数据库中获取电子邮件

yii - DHTMLX 与 yii 框架的集成不起作用?