[英]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.