[英]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.