好的,在这里,我仍然像一个真正的新手在Laravel 5上玩枢轴一样。
一切都很好,但是我需要将一个角色与用户联系起来,可能有很多角色,所以我需要循环并找到正确的角色,如果我确实返回一个true值。
所有的事情都像它应该的那样运作到这一点,我已经为我的用户提供了角色关系。
public function roles()
{
return $this->belongsToMany('App\Role');
}我创建了这样一个新的中间件:
public function handle($request, Closure $next)
{
if ( ! $request->user()->hasRole())
{
return redirect('/');
}
return $next($request);
}因此,我需要在用户中创建hasRole,以确认我的用户具有所需的角色。在这种情况下,可能有7个角色,其中一个是管理员,所以我需要循环,看看他是否有这个角色,这就是我被困的地方。
我需要在用户模型中加入一些内容,如
public function hasRole()
{
foreach roles as role
find "Administrator"
if you do return true
Otherwise return false
}就我而言,我知道无论你怎么理解我的想法,我很难掌握雄辩,但我已经做到了。
谢谢
发布于 2015-03-20 02:29:57
利用你所拥有的,你可以做这样的事情:
用laravel对进行了改进,通过对收集类的挖掘,找到了更好的解决方案。
public function hasRole()
{
return $this-roles->contains('name', 'admin')
}原始答案
public function hasRole()
{
return count($this->roles->filter(function($role) {
return $role->name == 'admin';
})) == 1;
}https://stackoverflow.com/questions/29157616
复制相似问题