简体   繁体   English

Laravel 关联其他表

[英]Laravel Join other tables in relation

I have a Situation Like This:我有这样的情况:

User Model:用户 Model:

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');
    }

Controller Controller

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

Now The Point Is In role i am getting the roles Of the User and In the parentData i am getting the creator of the user(parent) from the same user table by self calling now that parent also has a role现在重点在role ,我正在获取用户的角色,在parentData中,我通过自调用从同一个用户表中获取用户(父)的创建者,现在父也有一个role

My Question Is How can i get that role object inside the parentData Object?我的问题是如何在parentData Object 中获得该role object? Thanks!谢谢!

First of all.. the relationship you've set is wrong it should be belongsTo首先..你设置的关系是错误的,应该是belongsTo

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

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

Now as you want role object inside the parentData set with as below.现在,您希望在parentData集中role object 角色,如下所示。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM