laravel关联其他表

x33g5p2x  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(280)

我有这样的情况:
用户模型:

public function role() {
        return $this->hasOne('App\model\Roles' , 'id' ,'role');
    }

    public function userMetaData() {
        return $this->hasOne('App\model\UserMetaData' , 'user_id' ,'id');
    }

    public function userBet() {
        return $this->hasMany('App\model\UserBet' , 'user_id' , 'id');
    }

    public function userComission() {
        return $this->hasMany('App\model\UserComission' , 'user_id' , 'id');
    }

    public function userPartnership() {
        return $this->hasMany('App\model\UserPartneShip' , 'user_id' , 'id');
    }
    // Self Call
    public function parentData() {
        return $this->hasOne('App\User','id','parent_id');
    }

控制器

$userData = User::with(['userMetaData','userBet','userComission','userPartnership','role','parentData'])
                            ->where('id',$id)
                            ->get();

现在关键是 role 我得到了用户的角色和 parentData 我通过自调用从同一用户表中获取用户(父级)的创建者,现在父级也有一个 role 我的问题是我怎样才能得到它 role 对象内部 parentData 反对?谢谢!

gopyfrb3

gopyfrb31#

首先。。你建立的关系是错误的,它应该属于

public function role() {
    return $this->belongsTo('App\model\Roles' ,'role', 'id');
}

public function parentData() {
    return $this->belongsTo('App\User','parent_id','id');
}

随你怎么说 role 对象内部 parentData 设置如下。

$userData = User::with(['userMetaData','userBet','userComission','userPartnership','parentData.role'])
                  ->where('id',$id)
                  ->get();

相关问题