Laravel-5, 关联角色与用户
Laravel-5, Associating a role with a user
好的,所以在这里我仍然像 Laravel 5 上的真正新手一样摆弄枢轴。
一切正常,但我需要将角色与用户相关联,可能有很多角色,因此我需要循环并找到正确的角色,如果我这样做 return 值为 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 中挖掘集合 class 后,找到了更好的解决方案。
public function hasRole()
{
return $this-roles->contains('name', 'admin')
}
原答案
public function hasRole()
{
return count($this->roles->filter(function($role) {
return $role->name == 'admin';
})) == 1;
}
好的,所以在这里我仍然像 Laravel 5 上的真正新手一样摆弄枢轴。
一切正常,但我需要将角色与用户相关联,可能有很多角色,因此我需要循环并找到正确的角色,如果我这样做 return 值为 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 中挖掘集合 class 后,找到了更好的解决方案。
public function hasRole()
{
return $this-roles->contains('name', 'admin')
}
原答案
public function hasRole()
{
return count($this->roles->filter(function($role) {
return $role->name == 'admin';
})) == 1;
}