今天主要讲了些TP框架中模型层的操作及概念
首先:
实例化模型层的两种方法:
一种是用M()函数,另一种是new Model() 来实例化一个对象
模型一共有三类:基础类,空模型,自定义模型
基础类:是只实例化TP框架封装好的Model类所获得的模型对象,可以操作基本的增删改查,缺点是封装好的类拓展性很差,只能做这些了
空类型:实例化Model是不加参数,会得到一个空模型,空模型可以用来操控表的一层级,例如返回有多少表,可以使用QUERY()得到
自定义模型:实际上这种方式使用最为频繁,一个项目不可避免的需要定义自身的业务逻辑实现,就需要针对每个数据表定义一个模型类。
在LIB/MODELS/下自定义自己的模型类文件,自定义模型时,每一个模型对应一个数据表,模型类命名规范:
去掉表前缀的表名(首字母大写)+Model.class.php
默认情况下,模型类的名字对应表名,例如:
GoodModel.class.php 对应 goods
UserGroupModel.class.php 对应 user_group表
如果类名和表名不一致,要在类中定义$tableName属性储存对应的表名:
protected $tableName = 'book';
创建类是要继承model类,否则很多基本模型的方法应该无法使用:
Class GoodModel extends Model{}
自定义模型实例化方法:使用D()函数,D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化Model基类,同时对于已实例化过的模型,不会重复去实例化。
D方法还可以支持跨项目和分组调用:
//实例化TP_new项目的user模型:
$user=D(‘TP_new://user’);
//实例化admin分组中的user模型:
$user=D(‘admin:/user’);
连贯操作:
连贯操作主要用于查询数据,可以将数据查询出来就可以删改查了
连贯操作使用的函数都是在model中封装好的。可以直接调用,
假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户的创建时间排序 :$User->where('status=1')->order('create_time')->limit(10)->select();
方法在手册中有,这里不详细说了