布局

布局变量哪里有

  • Controller里面定义了布局变量($layout)
  • Module里面定义了布局变量($layout)
    其中的web\application里面定义了$layout='main',所以在没有设置layout的时候 会使用默认的main.php布局文件



layout变量值
$this->layout=false;// null or '@app/views/layouts/main.php' or '/main' or 'main'

  • false,不使用布局文件
  • null,使用Module中定义的布局文件
  • 字符串,指定布局文件
            a、别名开头,指定布局文件路径
            b、/开头,指定app下面的布局文件
                    $this->layout='/main' //'/test-main'
            c、使用当前Module里面的布局文件



layout查找规则

  • 先查看当前Controller里面有没有定义布局变量
  • 如果为Null,查找所在Module里面定义的布局变量(包括父级Module)
  • 如果为false,则不使用布局文件
  • 如果为字符串,则直接使用



布局的嵌套

在布局文件里面使用beginContent

//指定view 文件(别名或者路径)
<?php $this->beginContent('@app/views/layouts/main.php'); ?>
<?php echo $content;?>
<?php $this->endContent(); ?>


布局高级使用
让布局文件支持多个变量

posted @ 2016-10-17 11:35  haiwei.sun  阅读(103)  评论(0)    收藏  举报
返回顶部