委托Laravel-具有条件作用的雄辩查询



我的laravel应用程序中有单个用户雄辩的模型:

我将使用委托担任角色。用户可以具有多个角色。

我已经设法使用户具有多个角色,具有相同的模型 user ,例如:

  public function company(){
    if($this->hasRole('admin')){
        return $this->hasOne('AppCompany');
    }elseif($this->hasRole('member')){
           return $this->belongsTo('AppCompany');
     }
   }

如何在其他模型中处理此操作。

public function admin(){
    $this->hasOne('AppUser'); //if has role admin
}
public function members(){
    $this->hasMany('AppUser'); //if has role member
}

如何使此工作?

编辑我能够穿越用户并获得具有特定角色的相关用户,但它在集合中添加了空项目:

public function admin(){
    return $this->hasOne('AppUser')->get()->map(function($u){
        if($u->hasRole('admin') && $u != null){
            return $u;
        }
    });

}

不过,我正在检查$u != null,我可以在集合中看到许多空对象。

这就是我设法使其正常工作的方式。但是,我无法获得关系对象,而是我收集了具有角色管理的用户

public function admin(){
    return $this->hasOne('AppUser')->get()->map(function($u){
        if($u->hasRole('admin') && $u != null){
            return $u;
        }
    })->reject(function ($u){
        return $u == null;
    });

}

相关内容

  • 没有找到相关文章

最新更新