2015-09-04 89 views
2

我遇到了這種情況,我不需要在yii中爲特定頁面顯示header(它具有導航欄和徽標)and頁腳。有一些調整來做到這一點。例如,檢查佈局不會加載頁眉和頁腳的特定動作。爲YII中的特定頁面移除頁眉和頁腳的最佳方法

yii是否爲此問題提供了可靠的東西?

我們有像$this->layout->unsetHeader();?$this->layout->unsetFooter();?

什麼我不希望在佈局文件進行檢查,排序了這一點。

幫助將不勝感激。

回答

3

我還沒有找到像你在尋找的功能。

我覺得不過最好和siplest的方法是使用適當的佈局,並把它的控制器以這種方式

public function actionYourView() 
    { 

    $this->layout='yourLayout'; 
    $this->render('yourView'); 
} 

這樣就不需要檢查佈局內的頁眉和頁腳邏輯全部在控制器中。並指定適當的佈局很容易。

4

您可以將$ 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; 
+2

刪除了整個佈局。我丟失了css以及.. –

+1

我更新了我的帖子。 – crafter