好吧,所以在这里我仍然像 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
}
就我而言,我知道无论你怎么理解,我都很可怜,我正在努力掌握 Eloquent 技巧,但我正在做到这一点。
谢谢
最佳答案
利用你所拥有的,你可以做类似的事情:
改进 在深入研究 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;
}
关于php - Laravel-5,将角色与用户关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29157616/