我遇到了這種情況,我不需要在yii中爲特定頁面顯示header
(它具有導航欄和徽標)and
頁腳。有一些調整來做到這一點。例如,檢查佈局不會加載頁眉和頁腳的特定動作。爲YII中的特定頁面移除頁眉和頁腳的最佳方法
yii是否爲此問題提供了可靠的東西?
我們有像$this->layout->unsetHeader();?
或$this->layout->unsetFooter();?
什麼我不希望在佈局文件進行檢查,排序了這一點。
幫助將不勝感激。
我遇到了這種情況,我不需要在yii中爲特定頁面顯示header
(它具有導航欄和徽標)and
頁腳。有一些調整來做到這一點。例如,檢查佈局不會加載頁眉和頁腳的特定動作。爲YII中的特定頁面移除頁眉和頁腳的最佳方法
yii是否爲此問題提供了可靠的東西?
我們有像$this->layout->unsetHeader();?
或$this->layout->unsetFooter();?
什麼我不希望在佈局文件進行檢查,排序了這一點。
幫助將不勝感激。
我還沒有找到像你在尋找的功能。
我覺得不過最好和siplest的方法是使用適當的佈局,並把它的控制器以這種方式
public function actionYourView()
{
$this->layout='yourLayout';
$this->render('yourView');
}
這樣就不需要檢查佈局內的頁眉和頁腳邏輯全部在控制器中。並指定適當的佈局很容易。
您可以將$ this-> layout設置爲false;
$this->layout = false
$this->render('view', $data);
這也可以通過使用的RenderPartial
$this->renderPartial('view', $data);
上述方法將顯示一個頁段和頁面佈局的不其它物品來實現(例如JavaScript的包容和CSS和HTML報頭) 。
如果您希望佈局文件中包含邏輯,則可以從控制器傳遞變量。
$this->layout = 'mytheme';
$this->show_css = true;
$this->render('view', $data);
,並在佈局
<html>
<body>
<?php if ($this->show_css) { ?>
<div id="menu">
<ul><li>Menu Option 1</li><li>Menu Option 2</li></ul>
</div>
<?php } <?
<div id="body">
<?php echo $this->content; ?>
</div>
<div id="footer">
</div>
</body>
</html>
如果您不想在控制器中使用的變量。改爲使用全局變量。
Yii::app()->params['show_menu'] = true;
刪除了整個佈局。我丟失了css以及.. –
我更新了我的帖子。 – crafter