首先可以看看http://document.thinkphp.cn/manual_3_2.html#template_layout里面的说明
bootstrap布局样式可以参考:v3.bootcss.com
然后我们再进行下一步的理解:
1.在config文件中添加如下配置
1 'LAYOUT_ON'=>true, 2 'LAYOUT_NAME'=>'layout',
2.开启了layout布局之后我们所展示的代码就需要变化了
首先,我们要在view下面创建一个文件夹Public,文件夹里面包含两个文件分别是header.html 和 footer.html
然后,我们把下载好的模板文件中的index页面的头部和尾部分别放进上面两个对应的.html文件里面,并且把content部分删掉
再次,直接在view底下创建一个文件为:layout.html
具体如下:
这个时候我们需要在layout.html里面做一些代码编辑
如图:
注意:你改变以后的header和footer要把样式全部引用上,并且注意页面分离,header里面只放头菜单等等,footer里面放的是内容下面的东西
如图:
这样,页面布局就已经搭建好了,这个时候在配合控制器用一下:
比如我在index控制器写了如下代码:
1 <?php 2 namespace Home\Controller; 3 use Think\Controller; 4 class IndexController extends Controller { 5 public function index(){ 6 $this->display('index'); 7 } 8 9 public function test(){ 10 $this->display('test'); 11 } 12 }
这样的话 就要在view下面创建一个名字为Index的文件夹里面放一个index.html和test.html文件
然后,我们编辑一下这两个文件:
index.html
<div style="margin-top:20px;"> 这是一个研究成功的布局文件! </div>
test.html
<div id="main" name="main"> 在不开启LAYOUT_ON布局模板之前,会直接渲染 Application/Home/View/User/add.html 模板文件,开启之后,首先会渲染Application/Home/View/layout.html 模板,布局模板的写法和其他模板的写法类似,本身也可以支持所有的模板标签以及包含文件,区别在于有一个特定的输出替换变量{__CONTENT__},例如,下面是一个典型的layout.html模板的写法: 读取layout模板之后,会再解析User/add.html 模板文件,并把解析后的内容替换到layout布局模板文件的{CONTENT} 特定字符串。 当然可以通过设置来改变这个特定的替换字符串,例如: 'TMPL_LAYOUT_ITEM' => '{__REPLACE__}' 一个布局模板同时只能有一个特定替换字符串。 采用这种布局方式的情况下,一旦User/add.html 模板文件或者layout.html布局模板文件发生修改,都会导致模板重新编译。 如果需要指定其他位置的布局模板,可以使用: 'LAYOUT_NAME'=>'Layout/layoutname', 就表示采用Application/Home/View/Layout/layoutname.html作为布局模板。 </div>
这些内容是随便添加的,这个时候看效果:
如果不想让布局信息出现在页面,比如说登录页面,这肯定是不能有已经布局好的菜单啊什么的把
所以
注意了吗?我加了一个{__NOLAYOUT__}
这样就可以了