thinkphp中基础模型类为Think/model类,该类完成了基本的CURD、ActiveRecord操作。
一:模型定义:
模型类不是必须定义的,只有当存在额外的逻辑或者属性时才需要定义,一般情况下,使用thinkphp提供的model类已经可以完成大部分的需求。
thinkphp约定的模型命名规则是去除表前缀的数据表名称,使用首字母大写的驼峰命名法,然后加上model,例如:假设表前缀为:datang_
数据表名称为“datang_user”,去除表前缀后为user,首字母大写并且驼峰命名后“User”,加上Model后“UserModel”,所以“datang_user”对应的模型名称为“UserModel”。
注意:如果需要自定义模型,继承think/model模型即可。
模型的实例化:
根据不同的模型定义,实例化的方法也不同,大致有以下方法:new实例化,M函数实例化,D函数实例和空模型实例化。
一:new实例化
模型类本质也是php的类,所以可以直接new实例化。
以:datang_user为例,可以使用以下代码实例化:
$user=new model(“user”);
mode类的构造方法有三个参数,去除表前缀的数据表名称,表前缀,连接配置。如果数据表没有表前缀,传入为null就行。
二:M函数实例化
M函数是thinkphp内置的快捷函数,该方法接收的参数与model类的构造方法相同,返回值为实例化后的模型对象。
三:D函数实例化
D函数是thinkphp内置的快捷函数,与M函数最大的区别在于D函数可以自动检测模型类,如果存在指定模型类,则实例化该模型类,否则实例化“think/model”类,而M函数只会实例化”think/model“类。
四:空模型实例化:
如果只需要执行sql,不需要其他操作的话,可以实例化一个空模型类。
说到thinkphp,不得不说他的”连贯操作“的功能,连贯操作可以有效地提高代码质量以及开发效率。比如要查询user模型中stsus为1的前10条记录,并且按照时间去排序,只需要如下代码即可。
$user=M('user')
$list=$user->where(‘status=1’)->order(‘create_time desc’)->limit(10)->select();