Laravel 关联其他表
Laravel Join other tables in relation
我有这样的情况:
用户模型:
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
我正在从同一用户获取用户的创建者 (parent) table 通过自调用现在 parent 也有一个 role
我的问题是如何在 parentData
Object 中获取 role
object?
谢谢!
首先..你设置的关系是错误的应该是belongsTo
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();
我有这样的情况:
用户模型:
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
我正在从同一用户获取用户的创建者 (parent) table 通过自调用现在 parent 也有一个 role
我的问题是如何在 parentData
Object 中获取 role
object?
谢谢!
首先..你设置的关系是错误的应该是belongsTo
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();