Итак, здесь я до сих пор балуюсь поворотами, как настоящий новичок на 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 в User, чтобы подтвердить, что у моего пользователя есть требуемая роль. В этом случае может быть 7 ролей, одна из которых — «Администратор», поэтому мне нужно пройтись по нему и выяснить, есть ли у него роль, в которой я застрял.
Мне нужно поместить что-то в модель пользователя в соответствии с
public function hasRole()
{
foreach roles as role
find "Administrator"if you do return true
Otherwise return false
}
Плохо с моей стороны, я знаю, однако, вы понимаете, я изо всех сил пытаюсь справиться с красноречивым, но я добираюсь там.
Спасибо
Используя то, что у вас есть, вы можете сделать что-то вроде:
Улучшенный
Покопавшись в классе сбора в 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;
}
Других решений пока нет …