🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# tp5的三种渲染模板方式 ## 直接使用方法内的return返回的方式直接输出 ## 使用json输出,直接采用json函数 ``` $data = ['a'=>1, 'b'=>2, 'c'=>3]; return json($data); ``` ## 使用view输出模板 ``` return view(); ``` ***** # 模板布局的三种方法 ## 第一种方式:全局配置方式 * 在/config/template.php模板文件中添加如下代码 ``` // 开启全局模板布局 'layout_on' => true, // 全局模板布局文件名 'layout_name' => 'layout', // 修改默认的占位符{__CONTENT__} 'layout_item' => '{__TEXT__}', ``` * 在view文件夹中新建文件夹public放入公共的文件如:header.html、footer.html,在view文件夹中新建文件layout.html,该文件的内容如下: ``` {include file="public/header" /} {__CONTENT__} {include file="public/header" /} ``` * 在其他模板文件中就只修改不是公共的代码就行,不需要引入其他的任何文件,如:news.html的内容为 ``` <h2>我是网站的主体内容,此代码的头部底部不需要引入任何代码</h2> ``` ***** ### 标注:开启layout全局配置后,模板的加载是先加载layout.html文件再加载其他的文件 ***** ## 第二种方式:模板标签方式 这种布局模板不需要在配置文件中设置任何参数,也不需要开启`layout_on`,直接在模板文件中指定布局模板即可,相关的布局模板调整也在模板中进行。 ***** # 模板继承 * 在view/public文件夹中创建基础文件(父文件)base.html * 在父级文件base.html只包含公共的头部和尾部文件以及 区块部分 ``` {block name="body"} 主体(此处的主体是不会被显示的,block的name属性名可以随意) {/block} ``` * 在其他模板中要继承基础模板;如在news.html文件中的写法 ``` {extend name="public/base" /} {block name="body"} <h2>此处为news.html中的独立部分,此处的block相当于实例化基础文件的区块,对区块进行重写操作</h2> {/block} ``` ***** 注释:在子模板中可以使用{__block__}继承父级中的主体两个字的内容,在子模板中为空时清空主模板的内容 ![](https://img.kancloud.cn/54/19/541927f0d8e5ab331ce1773630d704db_584x311.png) *****