ThinkPHP基础知识
ThinkPHP 5.0
ThinkPHP5.0 常用目录结构
数据库的备份(导出)
- 进入命令行
win+r 输出cmd 然后回车 - 执行导出
mysqldump -u用户名 -p 数据库名称 > 导出文件路径
数据库的恢复(导入)
- 登录MySQL
mysql [-h主机名] -u用户名 -p 然后回车 - 创建数据库
create database tpshop;
- 选中数据库
use tpshop; - 将备份的文件导入当前数据库
source D:/dir_20210407.sql; - 查看数据表
show tables;
1 think模板引擎
模板引擎:将PHP中的变量展示到HTML文件中的机制
1.1 标签
- 普通标签
- 标签库标签
普通标签与标签库标签 这两类使用时没有区别 - 自定义标签
thinkphp默认的 模板引擎普通标签标记 与 标签库标签标记 是一对 { },为了有效的与前端js或其他的标记分开,所以改成 {{ }},更改位置在主配置文件(config.php)中,将“tpl_begin”、”taglib_begin” 改成 ‘{{‘ ,”tpl_end”、、”taglib_end”改成 ‘}}’ ,(如下代码:)
// 模板引擎普通标签开始标记
'tpl_begin' => '{{',
// 模板引擎普通标签结束标记
'tpl_end' => '}}',
// 标签库标签开始标记
'taglib_begin' => '{{',
// 标签库标签结束标记
'taglib_end' => '}}',
1.2 变量的展示
- 标量(简单的变量)
语法形式:{{$变量名}}
- 数组
语法形式:{{$数组['键']}}
、{{$数组.键}}
- 对象
属性:{{$对象->属性}}
、{{$对象:属性}}
方法:{{$对象->方法([参数 ....])}}
、
{{$对象:方法([参数 ....])}}
2 think模板引擎
2.1 变量调节器
语法格式:{{$变量名|变量调节器}}
- 日期转换
语法格式:{{$变量名|date="Y-m-d Hs", ###}}
注意:### TP5.0必须加这三个#,5.0以后的可以不加
代码示例:
{{$obj->create_time|date="Y-m-d H:i:s",###}}
- 大小写转换
语法格式:
小写:{{$变量名|strtolower}}
大写:{{$变量名|strtoupper}}
首字母大写:{{$变量名|ucfirst}}
示例:{{$hi|strtolower}} {{$hi|strtoupper}} {{$hi|ucfirst}}
- 字符串截取
语法格式:{{$变量名|substr=截取的起始位置,[截取长度]}}
示例:{{$hi|substr=0,5}} {{$hi|substr=6}} {{$name|mb_substr=0,3}} {{$name|mb_substr=4}}
- 声明:
ThinkPHP模板引擎的变量调节器支持”管道”的写法
(管道:上一个命令的返回结果,是下一个命令输入)
示例:{{$变量|strtolower|substr=0,5}} <!-- 先小写,再取0到5 -->
2.2 保留变量
所谓的保留变量是指不需要经过assign赋值,在模板中能直接访问的变量。
2.2.1 $Think
- 访问常量
语法:{{$Think.常量名}}
示例:{{$Think.THINK_VERSION}}
- 访问预定义变量
语法:{{$Think.get}}
相当于$_get
{{$Think.get.键}}
相当于$_get['键]
可以取 $_GET $_POST $_FILES $_COOKIE $_SESSION …
示例:{{$Think.get.username}}
- 访问配置
语法:{{$Think.config.配置项}}
示例:
{{$Think.config.default_controller}}
- 多级配置
语法:{{$Think.config.一级配置.二级配置....}}
示例:{{$Think.config.paginate.list_rows}}
2.2.2 $Request
- 获取当前模块名
- 获取当前控制器名
- 获取当前方法名
示例:<!-- 获取当前模块名 --> {{$Request.module}} <!-- 获取当前控制器名 --> {{$Request.controller}} <!-- 获取当前方法名 --> {{$Request.action}}
2.3 三目运算符
语法形式:{{$变量 ? 真值 : 假值}}
示例代码:
{{$Think.config.app_debug ? '开启了' : '没有开启'}}
2.4 流程控制语句
- if
语法:
示例:{{if condition="条件表达式"}} {{else if codition="条件表达式2"}} {{else /}} {{/if}}
{{if condition="$Think.config.app_debug"}} 开启了 {{else /}} 没开启 {{/if}}
- VOLIST标签
语法:
示例:{{volist name="变量" id="循环变量名" key="循环变量索引"}} {{$循环变量名}} {{/volist}}
<table border=1;> <tr> <td>索引</td> <td>用户名</td> <td>时间</td> </tr> {{volist name="users" id="vo"}} <tr {{if condition="$key==0"}} style="background-color: lightblue;" {{/if}}> <td>{{$key}}</td> <td>{{$vo.username}}</td> <td>{{$vo.create_time|date="Y-m-d Hs",###}}</td> </tr> {{/volist}} </table>
2.5 文件引入
- 替换字符
'__STATIC__' 对应public/static/目录 '__CSS__' 对应public/static/css/目录 '__JS__' 对应public/static/js/目录
示例:
<link rel="stylesheet" href="__STATIC__/bootstrap/css/bootstrap.css">
- load
语法:{{load file="路径"}}
load可以引入css,js和图片
示例:{{load file="__STATIC__/bootstrap/css/bootstrap.css"}} {{load file="__JS__/jquery.js"}} {{load file="__STATIC__/bootstrap/js/bootstrap.js"}}
3 控制器
控制器位置:application/模块/controller/控制器.php
基类:use think\Controller;
基类位置:tp/thinkphp/library/think/Controller.php
模板相关
assign()
将PHP中的变量赋值给模板
a. 单个赋值:
语法:assign(模板中的变量名, PHP中的变量名)
示例:
$hi = "Hello,world";
$user = [
'username' => 'sam',
'create_time' => 1552555525
];
// 将变量赋值给模板
$this->assign('hi',$hi);
$this->assign('user',$user);
b. 多个赋值
语法:
assign([
'变量名1' => $变量1,
'变量名2' => $变量2,
.......
]);
示例:
$hi = "Hello,world";
$user = [
'username' => 'sam',
'create_time' => 1552555525
];
$this->assign([
'hi' => $hi,
'user' => $user,
]);
fetch()
调用模板
默认的模板路径:模块/view/控制器/方法.html
注意:一定要写return, 不写return将返回空白页面
示例:
return $this->fetch();
本作品采用《CC 协议》,转载必须注明作者和本文链接
哈哈 直接看文档 :joy: