thinkphp5 模型
thinkphp框架是mvc框架,关于模型的特性如下:
- 完全对象式访问
- 支持静态调用(查询)
- 支持读取器/修改器
- *时间戳字段自动写入
- 对象/数据访问
- JSON序列化
- 模型事件触发
- 命名范围
- 类型自动转化
- 数据验证和自动完成
- 关联查询/操作
- 关联预载入
定义
版本 | 调整功能 |
---|---|
5.0.5 | model或者loader::model 方法支持传入完整的模型类名 |
模型的定义
定义一个User模型
namespace app\index\model;
use think\model;
class User extends Model
{
#默认主键为自动识别,如果需要指定,可以设置属性
protected $pk = 'uid';
#设置当前模型对应的完整数据表名称
protected $table = 'think_user'
#设置当前模型的数据库连接
protected $connection = [
'type' => 'mysql',
'hostname' => '127.0.0.1',
'database' => 'thinkphp',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
//数据库表前缀
'prefix' => 'think_',
'debug' => 'false',
];
}
5.0不支持单独设置当前模型的数据表前缀。
模型自动对应数据表
模型名 | 预定对应数据库(前缀可以定义) |
---|---|
User | think_user |
UserType | think_user_type |
模型调用
//静态调用或者实例化调用两种方式,
//静态调用
$user = User::get(1);
$user -> name = 'thinkphp';
$user -> save();
//实例化
$user = new User;
$user -> name = 'thinkphp';
$user -> save();
//使用Loader类实例化(单列)
$user = loader::model('Uses');
//使用助手函数'model'
$user = model('User');
$user -> name 'thinkphp';
$user -> save();