首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel-5,将角色与用户关联起来。

Laravel-5,将角色与用户关联起来。
EN

Stack Overflow用户
提问于 2015-03-20 00:52:27
回答 1查看 620关注 0票数 2

好的,在这里,我仍然像一个真正的新手在Laravel 5上玩枢轴一样。

一切都很好,但是我需要将一个角色与用户联系起来,可能有很多角色,所以我需要循环并找到正确的角色,如果我确实返回一个true值。

所有的事情都像它应该的那样运作到这一点,我已经为我的用户提供了角色关系。

代码语言:javascript
复制
    public function roles()
    {       
        return $this->belongsToMany('App\Role');
    }

我创建了这样一个新的中间件:

代码语言:javascript
复制
public function handle($request, Closure $next)
    {

       if ( ! $request->user()->hasRole())
       {
          return redirect('/');
       }

       return $next($request);

    }

因此,我需要在用户中创建hasRole,以确认我的用户具有所需的角色。在这种情况下,可能有7个角色,其中一个是管理员,所以我需要循环,看看他是否有这个角色,这就是我被困的地方。

我需要在用户模型中加入一些内容,如

代码语言:javascript
复制
public function hasRole()
{
   foreach roles as role 
   find "Administrator" 
   if you do return true

   Otherwise return false
}

就我而言,我知道无论你怎么理解我的想法,我很难掌握雄辩,但我已经做到了。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-20 02:29:57

利用你所拥有的,你可以做这样的事情:

用laravel对进行了改进,通过对收集类的挖掘,找到了更好的解决方案。

代码语言:javascript
复制
public function hasRole()
{
    return $this-roles->contains('name', 'admin')
}

原始答案

代码语言:javascript
复制
public function hasRole() 
{
  return count($this->roles->filter(function($role) {
    return $role->name == 'admin';
  })) == 1;

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29157616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档