2
我在我的Laravel应用程序中有单个用户雄辩模型:委托与Laravel - 雄辩的查询与条件角色
我将使用Entrust角色。 用户可以有多个角色。
我已经设法让用户有相同的口才模型多重角色用户这样的:
public function company(){
if($this->hasRole('admin')){
return $this->hasOne('App\Company');
}elseif($this->hasRole('member')){
return $this->belongsTo('App\Company');
}
}
如何在其他模型处理这个假设在公司型号:
public function admin(){
$this->hasOne('App\User'); //if has role admin
}
public function members(){
$this->hasMany('App\User'); //if has role member
}
如何让此工作继续?
编辑 我能够通过用户遍历并获得相关用户与特定的角色,但它在集合中添加空项:
public function admin(){
return $this->hasOne('App\User')->get()->map(function($u){
if($u->hasRole('admin') && $u != null){
return $u;
}
});
}
虽然,我检查$u != null
我可以在集合中看到很多空对象。
您应该添加,将动态连接相关模型 –
那怎么办了'manages'关系?你能详细说明吗? –
耶是每个用户的多个角色。并且我使用具有多重关系的透视表role_user表的委托。角色的用户表中没有属性。 –