1. 1.基础
    1. 简介
    2. 下载
    3. 目录结构
      1. index.php
      2. composer.json
      3. Application
      4. Public
      5. ThinkPHP
        1. Common
        2. Conf
        3. Lang
        4. Library
          1. Think
          2. Behavior
          3. Org
          4. Vendor
          5. ......其他类库目录
        5. Mode
        6. Tpl
        7. logo.php
        8. index.php
    4. 入口文件
      1. Application目录结构
        1. Common
          1. Common
          2. Conf
        2. Home
          1. Conf
          2. Common
          3. Controller
          4. Model
          5. View
        3. Runtime
          1. Cache
          2. Data
          3. Logs
          4. Temp
    5. 调试模式
    6. 配置
    7. 控制器
      1. 操作方法
        1. public 方法
        2. protected
        3. private私有方法
    8. URL请求
      1. 普通模式
      2. PATHINFO模式
      3. REWRITE模式
      4. 兼容模式
    9. 视图
    10. 读取数据
      1. 先获取M('user')数据
      2. 复制模版变量
      3. 输出渲染模版
  2. 2.数据库操作CURD
    1. 创建数据
      1. 思路:验证添加数据
      2. 模型
        1. $model->create()
        2. $model->add()
    2. 读取数据
      1. $model->find($id)
      2. $model->where('id=3')->getField('title')
    3. 更新数据
      1. 先读取数据放到edit的input的value中
      2. 提交后先create()再save()更新操作
      3. 如果只修改某个字段的值可用setField()方法
      4. 统计字段给某个字段+1+5或-1等操作
        1. $model->where('id=3')->setInc('score'.'3')
        2. $model->where('id=3')->setDec('score'.'2')
    4. 删除数据
  3. 3.查询语言
    1. 查询方式
      1. 使用字符串sql语句
      2. 使用数组作为查询条件
        1. $arr['name']='php';
        2. $model->where($arr)->select()
      3. 使用对象方式来查询
        1. $ob=new stdClass();//创建空对象
        2. $model->where($ob)->select()
      4. 表达式查询
        1. $arr['name']=array('neq'.'php');
        2. $model->where($arr)->select()
    2. 快捷查询
      1. 实现不同字段相同的查询条件
      2. 实现不同字段不同的查询条件AND查询
    3. 区间查询
    4. 组合查询
      1. 字符串模式查询
      2. 请求字符串查询类似URL参数模式
      3. 复合查询
    5. 统计查询
      1. $model->count();
      2. $model->max('score');
      3. 还有min/avg/sum/等等
    6. 原生SQL查询
      1. 查询query方法
        1. $model->query("select *..........")
      2. 更新写入execute()方法
        1. $model->execute("insert into ......")
    7. 动态查询
      1. getBy根据字段值查询数据返回一行记录
      2. getFieldBy根据字段查询返回某个字段的值
    8. 子查询
      1. 使用select(false)方法返回sql句子
      2. 使用buildSql()方法返回带括号的sql句子
  4. 4.连贯操作
    1. 连贯方法不分顺序,select必须放到最后
  5. 5.变量
    1. 获取变量
  6. 6.路由
    1. URL_ROUTER_ON
    2. URL_ROUTE_RULES
      1. 正则表达式
      2. 规则表达式
      3. 闭包支持
    3. URL_MAP_RULES
      1. 说白了和上面的区别就是没有动态参数地址是静态的
  7. 7.视图
    1. 模版定义
    2. 模版渲染
      1. display等效于先fetch()再show()
    3. 模版赋值
  8. 8.变量输出到模版
    1. 在模版中{$name}调用
      1. 数组输出
      2. 对象输出
    2. 在模版中输出系统变量{$Think开头}
    3. 输出内容使用函数过滤
    4. 使用运算符+_*/++--等
    5. 三元运算
  9. 9.模版循环和控制输出
    1. 循环输出
      1. volist标签[有好多属性mod/offset/length/empty]
      2. foreach标签
    2. 条件输出
      1. switch标签
    3. 比较标签
      1. 相等标签<eq name="变量" value="比较的值"><else/>111</eq>
      2. 其他同理
    4. 范围判断标签
      1. in范围内标签
      2. 其他同理也可以有else语句
    5. 赋值判断标签
      1. 不为空判断标签<notempty>
      2. 其他同理.defined标签用来判断常量是否有赋值
    6. 原生代码
      1. 用php标签写<php>....</php>
      2. 使用php原生代码写
  10. 10.公共模版和模版布局
    1. 公共模版
      1. 方式一:使用模版表达式
      2. 方式二:使用模版文件完整路径
      3. 除了上面导入模版还可以传入参数
    2. 模版布局
      1. 方法一:配置文件中定义LAYOUT_ON和LAYOUT_NAME(定义为layout)
      2. 方法二:模版标签方式[不用开启配置参数]
      3. 方法三:直接在控制器中用layout()方法控制模版布局
  11. 11.Action参数绑定
    1. 按变量名绑定[访问url不分顺序]
    2. 按变量顺序绑定
  12. 12.空操作和空控制器
    1. 空操作
    2. 空控制器
  13. 13.初始化/前置/后置方法
    1. 初始化操作_initialize()
    2. 前置操作_before_方法名()
    3. 后置操作_after_方法名()
  14. 14.页面跳转和重定向
    1. 页面跳转
      1. $this->success("成功".'http://baidu.com')
      2. $this->error("失败信息");
    2. 重定向URL
  15. 15.页面请求和Ajax
    1. 判断请求类型常用于if语句
    2. AJAX返回
    3. 伪静态
      1. __EXT__参数判断url的后缀格式
    4. 操作绑定到类
  16. 16.多层控制器
    1. 定义多层控制器
    2. 调用多层控制器
      1. 直接实例化
      2. A函数实例化
    3. Widget实例
      1. widget是小窗口器件的意思
  17. 17.数据库自动验证与完成
    1. 自动验证
      1. 静态验证
      2. 动态验证
      3. $_validate数组验证规则
    2. 自动完成
      1. $_auto数组验证规则
      2. 动态验证
      3. 静态验证