好的,所以在这里我仍然像Laravel 5上的一个真正的新手一样搞乱枢轴。
一切正常,但是我需要将角色与用户关联起来,可能会有很多角色,所以我需要循环找到正确的角色,如果我确实返回了真值。
到目前为止,一切正常,我的用户与角色关系。
public function roles()
{
return $this->belongsToMany('App\Role');
}
我创建了一个像这样的新中间件:
public function handle($request, Closure $next)
{
if ( ! $request->user()->hasRole())
{
return redirect('/');
}
return $next($request);
}
因此,我需要在User中创建hasRole,以确认我的用户具有所需的角色。在这种情况下,可能有7个角色,其中一个是管理员,所以我需要循环查看他是否确实有角色,这就是我被困住的地方。
我需要按照
的方式在User模型中添加一些内容public function hasRole()
{
foreach roles as role
find "Administrator"
if you do return true
Otherwise return false
}
我可怜但是我知道你得到了这个想法,我正在努力去掌握雄辩,但我到了那里。
由于
答案 0 :(得分:2)
使用你拥有的东西,你可以做类似的事情:
<强>提高强> 在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;
}