tp model 结果集添加额外字段
- 手册中说有个append方法可以调用,append([‘abc’])没详说具体怎么用,于是看了看源码。
- append会遍历当前结果集,调用模型append方法添加额外字段,其作用在结果集调用toArray是展现。
- toArray是会调用getAttr方法获取字段值,getAttr方法会触发获取器,所以可以利用获取器产生任意值,并且获取器中可以利用$this获取当前模型任意数据的。
- 所以添加额外字段时,以is_admin为例:
//UserModel 中获取器
public function getIsAdminAttr($value){
return $this->id===1;
}
// 查询使用
$user = UserModel::select()->append(['is_admin']);