首页 > 代码库 > 使用ORM关联关系,如何自己关联自己

使用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和区别都是在继承上).

使用ORM关联关系,如何自己关联自己