使用Record
概述
Record 模式的核心是:一个Record对象唯一对应数据库表中的一条记录,而对应关系依靠的是数据库表的主键值。
因此,ActiveRecord 模式要求数据库表必须要有主键(是不是自增无所谓)。当数据库表没有主键时,只能使用 DB来操作数据库。
定义
所有模型需要集成Record完整实例如下:
class Device extends Record{
//设置表名 默认为类名小写驼峰转下滑线
public function getTable(){
return "magio_device";
}
//设置字段类型
public function getFields(){
return [
'id'=>'int',
'platform'=>'int',
'mac'=>'string',
'info'=>'json'
];
}
//find缓存的 key
public function cacheKeys(){
return ["device"];
}
//下面将所有表里的字段列下来
public $id;
public $platform;
public $mac;
public $info;
}
上面的类文件支持自动生成
使用实例
$device = new Device();
$device -> platform=1;
$device -> mac='xxxxxxx';
$device -> info=['a'=>'a1','b'=>'b2'];
$id = $device -> save();
echo $id;
$device = Device::get(1);
$device -> mac='jjjjjjj';
$device -> save();
$device -> delete();
$devices = Device::select()->where('id',"<","100")->findAll();