模型定义
一.定义模型
1. 定义一个与数据库相匹配的模型
class User extends Model{ }
2. 模型会自动对应数据表,模型类的命名规则是除去表前缀(例如:tp_)的数据表名称,采用驼峰法命名,并且首字母大写,例如:
立即学习“PHP免费学习笔记(深入)”;
tp_user(表名) => User(模型名)
tp_user_type(表名) => UserType(模型名)
3. 如果担心模型的名称和PHP关键字冲突,可以启用类后缀功能,只需要在应用配置文件app.php中设置:
// 开启应用类库后缀 'class_suffix' => true,
4. 设置完毕后,所有的控制器名与类名都要加上Controller与Model,例如:
Class UserModel
Class UserController
二.模型设置
1. 默认主键是id,如果想设置其他主键,类似于uid:
protected $pk = 'uid';
2. 在控制器调用模型的时候,如果控制器类名与模型名重复,可以设置别名:
use app\test\model\User as UserModel;
3. 在模型定义中也可以在模型中设置其他表名:
protected $table = 'tp_other';
4. 模型同控制器一样也支持初始化,这里必须设置static静态方法,具体如下:
protected static function init() { //初始化内容 }
三.模型操作
1.模型操作与数据库操作一致,但是模型操作不需要指定表名,例如:
数据库操作:
Db::name('user')->all ();
模型操作:
User:all();
2. 模型操作与数据库操作返回的结果类型不同,数据库操作返回的结果是一个(二维)数组[ [ ] ],而模型操作返回的结果是一个结果集[ { } ]。
推荐教程:《TP5》