变量输出
自定义变量输出:{$value}
默认值输出:{$value|default='默认值'}
系统变量:($Think.server/env/post/get/cookie/session/request)
使用运算符需要注意:数学运算,.语法失效
模板解析定界符(TMPL_L_DELIM、TMPL_R_DELIM)
使用函数
- 变量是第一个参数:{$vaule|function[=?,?,?]},例如{$value|trim}
- 变量不是第一个参数{$value|str_replace=?,?,###}
- 嵌套使用多个函数:{$value|func1|func2|func3},优先级从左到右
- 回归原生PHP:{:expression}
包含文件和模板替换
- 包含文件:<include file="模板表达式/文件路径[,...]" key=value/>
- 导入资源文件:import,load,js,css
- 模板替换:TMPL_PARSE_STRING
- 默认替换规则:__ROOT__,__APP__,__MODULE__,__CONTROLLER__,__ACTION__,__SELF__,__PUBLIC__
ThinkPHP模型:定义域实例化:
- think PHP模型的定义
- 模型是以PHP类的方式定义,继承自相应的模型类
- 约定模型名称是不包含表前缀的数据表名称,UserModel对应jike_user数据表
- 模型类的属性:tablePrefix,tableName,trueTableName,dbName,connection
- 实例化:new UserModel(),M('User'),D('User')和空模型
- think PHP模型数据库相关配置和实现
- 数据库信息配置
- 切换数据库:db方法
- 分布式数据库:DB_DEPLOY_TYPE
- 读写分离:DB_RW_SEPARATE,DB_MASTER_NUM,DB_SLAVE_NO
- 模型的字段定义
- 字段缓存机制:
- 避免每次访问web应用都要访问数据库
- 保存在哪里:缓存目录下的Data/_fields/
- 保存形式:数据库名称[.表前缀]+模型名称(小写).php
- 如何关闭:DB_FIELDS_CACHE
- 获取模型的字段信息:getDbFields方法
- 字段定义:
- 模型的fields属性
- 使用_type定义字段数据类型
- 通过pk属性定义表的主键
think PHP模型:数据库操作
- think PHP模型的CURD操作
- think PHP模型的连贯操作
- think PHP模型中定义命名范围
- think PHP模型使用查询语言
- think PHP模型中定义字段映射
think PHP模型的CURD操作
- create(新增):使用add方法
- update(更新):使用save方法
- read(读取):使用find(单条),select(多条)
- delete(删除):使用delete方法
think PHP的连贯操作:
连贯操作又称为链式操作,类似querybuilder,实例化的模型类每调用一次连贯操作方法,便会修改本身的属性值,最后以一个终结方法来结束连贯操作,对于模型来说就是进行数据库操作然后返回结果
think PHP定义命名范围:
- 命名范围有什么作用
- 解决开发过程中对数据库操作的冗余
- 如何定义:模型的_scope属性
- 通过模型的scope方法调用