多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 模型及关联 模型的查询始终返回模型对象或者数据集对象,不再返回数组。 模型数据和关联数据分开存储,避免影响。 模型事件方法的参数支持依赖注入。 如果使用dump助手函数调试模型对象或者数据集对象,则会进行`toArray`转换后输出,如果直接`var_dump`模型对象的话,只会输出模型的`data`和`relation`属性。 查询范围支持链式操作,例如User模型类定义如下: ~~~ namespace app\index\model; use think\Model; class User extends Model { public function email($query, $email) { $query->where('email', 'like', '%' . $email . '%'); } public function score($query, $score) { $query->where('score', '>', $score); } } ~~~ 在查询的时候可以如下使用: ~~~ // 查询email包含thinkphp和分数大于80的用户 User::email('thinkphp')->score(80)->select(); ~~~ #### 模型关联 增加多态一对一关联,使用模型类的`MorphOne`方法定义。 可以给关联属性定义获取器方法,会首先获取关联属性然后调用获取器处理。 模型类增加`parent`属性,用于保存当前模型的所属(关联)模型,使用getParent方法获取,当关联对象中获取父模型的时候会自动获取。 多对多关联中间表定义不需要使用表前缀,并且支持定义模型,可以封装独立的业务逻辑。