### 概述 * * * * * 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; } ~~~ >[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(); ~~~ >[info] Record 实现了ArrayAccess接口所以你也可以通过数组的访问和这只对应的 field > ~~~ $device -> mac='jjjjjjj'; 等于 $device ['mac']='jjjjjjj'; $m=$device -> mac; 等于 $m=$device ['mac']'; ~~~