> ### 1、模型基类 Core\Model\Model 继承自Think\Model , 因此tp默认模型的方法和属性都可使用
> ### 2、使用模型的前提是使用 D() 实例化模型而不是M() , M() 可以看作是实例化的Model基类并传入表名 , 本质并没有实例化模型
*****
> ### 不管是查询还是其他操作 , where条件 、 或者其他的操作 , 使用数组方式或者链式操作
> ### 一是因为代码整洁 便于组装条件和封装
> ### 二是不需要手动绑定参数 防止sql注入
> ### 三是使用模型操作数据远比使用sql原生语句操作数据方便实用
*****
> ### 使用模型添加数据时 , 正确的步骤应该是:
```
1、验证器验证
2、调用模型createData()创建数据(这个过程非法字段的过滤 、 调用修改器修改字段)
3、调用add()方法完成添加操作 , 如果添加失败会抛出异常 , 不会执行下面的步骤。这个过程不需要手动判断,程序自动完成。
4、调用output输出或执行其他操作
```
*****
> ### 使用模型编辑数据时 , 正确的步骤应该是(简单逻辑 复杂的除外):
```
1、验证器验证
2、获取请求参数 组装更新条件
3、调用模型createData()创建数据(这个过程非法字段的过滤 、 调用修改器修改字段)
4、调用save()方法完成编辑操作 , 如果编辑失败会抛出异常 , 不会执行下面的步骤。这个过程不需要手动判断,程序自动完成。
4、调用output输出或执行其他操作
```