插件窝 干货文章 thinkphp模型定义

thinkphp模型定义

模型 class 操作 pre 708    来源:    2024-10-28

模型定义

一.定义模型

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》