Laravel-5, ассоциирование роли с пользователем

Итак, здесь я до сих пор балуюсь поворотами, как настоящий новичок на 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
}

Плохо с моей стороны, я знаю, однако, вы понимаете, я изо всех сил пытаюсь справиться с красноречивым, но я добираюсь там.

Спасибо

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;

}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]