使用ORM关联关系,如何自己关联自己
今天碰到一个需求是需要自己关联自己,输出数据为树状,我们在定义关联关系的用get_calss方法
/** * 定义关联关系 * @return \think\model\relation\HasMany */ public function user() { return $this->hasMany(get_class($this),'area','area'); }
{ "code": 200, "message": "成功", "data": [ { "area": "自营", "user": [ { "id": 2, "usr": "毅拓科贸", "area": "自营" }, { "id": 3, "usr": "安博", "area": "自营" }, { "id": 4, "usr": "世纪扬天", "area": "自营" }, { "id": 5, "usr": "沧田", "area": "自营" }, { "id": 6, "usr": "佳阳电子", "area": "自营" }, { "id": 7, "usr": "博中天虹", "area": "自营" }, { "id": 8, "usr": "丹灵", "area": "自营" }, { "id": 153, "usr": "中美隆", "area": "自营" }, { "id": 154, "usr": "格力", "area": "自营" }, { "id": 155, "usr": "美承", "area": "自营" } ] }, { "area": "安阳", "user": [ { "id": 9, "usr": "安阳A", "area": "安阳" }, { "id": 27, "usr": "安阳B", "area": "安阳" }, { "id": 59, "usr": "林州市", "area": "安阳" }, { "id": 62, "usr": "安阳县", "area": "安阳" }, { "id": 82, "usr": "滑 县", "area": "安阳" }, { "id": 113, "usr": "内黄县", "area": "安阳" }, { "id": 119, "usr": "汤阴县", "area": "安阳" } ] },
这里的get_class($this):获取的是当前类名
get_called_calss和它不同,是调用该方法的类名(和self,static和区别都是在继承上).