PHP-ThinkPHP将后台模板与框架做结合
- 2020 年 3 月 27 日
- 筆記
九、将后台模板与框架做结合
模板整合思路:
①确定页面的访问路径(模块、控制器、方法)
②新建对应的控制器方法,在方法中调用模板
③将模板页面移动到对应的视图目录下(创建子目录)
④将静态资源文件移动到public/static/admin目录下
⑤修改模板文件中静态资源路径
页面分布:
登录页 Login控制器login方法 login.html
首页 Index控制器index方法 index.html
商品列表 Goods控制器index方法 goods_list.html -> index.html
商品新增 Goods控制器create方法 goods_add.html -> create.html
商品修改 Goods控制器edit方法 goods_edit.html -> edit.html
管理员列表 Manager控制器index方法 manager_list.html -> index.html
管理员新增 Manager控制器create方法 manager_add.html -> create.html
管理员修改 Manager控制器edit方法 manager_edit.html ->edit.html
…
1、模板布局
(见手册–模板–模板布局)
使用模板布局,就是把多个模板页面都有的公共代码给抽取出来,放到一个公共位置开发维护
好处:相同的代码只维护一份,减少代码工作量
后台全局布局设置步骤:
①修改配置文件application/admin/config.php,加入以下设置
'template' => [ 'layout_on' => true,//开启布局 'layout_name' => 'layout',//布局文件名称 ]

②将静态资源文件移动到/public/static/admin目录下

③在application/admin/view目录下,新建layout.html
将后台页面公共的头部、底部代码提取到layout.html中,在中间位置放一个特殊字符串“{_CONTENT_}”,表示此位置,替换为原始要访问的页面内容。
layout.html文件中, 只保留所有页面公共 的css和js相关代码,修改静态资源路径
注: 一定不能 直接将所有css和js都放在layout.html中。
注:TP框架中,模板中的静态资源路径,不能使用相对路径./ ,必须使用以/开头的路径。

④临时关闭模板布局
全局布局设置,对所有页面全部生效。
特殊页面(不需要使用布局的页面),可以在控制器方法中,临时关闭模板布局。
$this->view->engine->layout(false);
比如登录页面,不需要使用布局,见 “3、后台登录页”
2、后台首页
①确定页面的访问路径(模块、控制器、方法)
admin模块Index控制器index方法
②新建对应的控制器方法,在方法中调用模板
<?php namespace appadmincontroller; use thinkController; class Index extends Controller { public function index() { return view(); } }
③将模板页面移动到对应的视图目录下
index.html => application/admin/view/index/index.html
④修改模板文件
保留页面独有的静态资源文件,以及主体部分代码
修改模板文件中静态资源路径

注:如果页面显示效果不对,可以考虑先删除缓存 runtime目录
3、后台登录页
①确定页面的访问路径(模块、控制器、方法)
admin模块 login控制器 login方法
②新建对应的控制器方法,在方法中调用模板
注:后台的登录页面,不需要使用布局

③将模板页面移动到对应的视图目录下
将login.html 移动到 application/admin/view/login/目录下

⑤修改模板文件中静态资源路径
修改application/admin/view/login/login.html
注:也可以使用_STATIC_ 代替静态资源路径中的/static(手册–视图–输出替换)

4、其他页面
重复步骤①②③⑤