簡體   English   中英

在YII中刪除特定頁面的頁眉和頁腳的最佳方法

[英]Best way to remove header and footer for a particular page in YII

我遇到了一種情況,我不需要在yii中顯示特定頁面的header (它有導航欄和徽標) and頁腳`。 有很多調整可以做到這一點。 例如,檢查布局不會加載頁眉和頁腳的特定操作。

yii是否為此問題提供了任何可靠的東西?

我們有類似$this->layout->unsetHeader();?東西$this->layout->unsetHeader();? $this->layout->unsetFooter();?

我不想在布局文件中檢查以對其進行排序。

幫助將不勝感激。

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

我找不到像你一樣的功能。

我認為最好和最簡單的方法是使用適當的布局,並以這種方式在控制器中調用它

public function actionYourView()
   {

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

通過這種方式,您不需要在頁面和頁腳的布局內檢查邏輯是否在控制器中。 並且分配合適的布局很容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM