在YII中删除特定页面的页眉和页脚的最佳方法

时间:2015-09-04 17:16:36

标签: php html css layout yii

我遇到的情况是,我不需要为yii中的特定页面显示Sub hide_dates() Dim ws2 As Worksheet, tempRange As Range Dim StartDate As String Dim EndDate As String Set ws2 = Sheets("Test") ws2.Range("G2").Value = TXTDate1.Text ws2.Range("G3").Value = TXTDate2.Text StartDate = Format(DateValue(ws2.Range("G2").Value), "mm/dd/yyyy") EndDate = Format(DateValue(ws2.Range("G3").Value), "mm/dd/yyyy") With ActiveSheet If .AutoFilterMode Then .AutoFilterMode = False Set tempRange = .Range(.Range("D5"), .Range("D5").End(xlDown)) With tempRange .AutoFilter field:=1, Criteria1:=">=" & StartDate, _ Operator:=xlAnd, Criteria2:="<=" & EndDate, _ VisibleDropDown:=False End With End With End Sub (它有导航栏和徽标)header页脚`。有很多调整可以做到这一点。例如,检查布局不会加载页眉和页脚的特定操作。

yii是否为此问题提供了任何可靠的内容?

我们有and$this->layout->unsetHeader();?

之类的内容吗?

我不想检查布局文件以对其进行排序。

帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

您可以将$ this-&gt;布局设置为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;

答案 1 :(得分:3)

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

我认为最好和最简单的方法是使用适当的布局,并以这种方式在控制器中调用它

public function actionYourView()
   {

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

通过这种方式,你不需要在页面和页脚的布局中检查逻辑是否在控制器中。并且分配合适的布局很容易。