Я новичок в фреймворках PHP и yii, и я стараюсь понять, как работают представления/макеты. Это, как я в настоящее время понять, как макет шаблона страницы:Где/Как включить панель навигации в виде yii
<!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>
Я понимаю, что основной юй способ больше похож на это:
<?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. Могу ли я использовать все как указано выше или мне нужно использовать zii.widgets? Если это нормально использовать, где я могу поместить файлы?
Любая помощь будет высоко оценена.
Спасибо, кажется, работает нормально. Мне просто нужно выяснить, как и почему. У меня есть чему поучиться! Еще раз спасибо. –
на ваш взгляд '$ this' всегда ссылается на ваш класс контроллера, поэтому $ this-> renderPartial() - это метод CController - когда ему передается« // layouts/_menu », контроллер идет и ищет _menu.php в затем вставьте его в представление. Вы также можете передавать данные своим частичным представлениям - эта статья может помочь устранить ситуацию http://www.yiiframework.com/wiki/249/understanding-the-view-rendering-flow/ – adamS
Теперь используйте '= $this-> render ('_меню'); ?> ' –