Я пытаюсь авторизации Laravel, и мне нужен метод на модели пользователя, который проверяет условие и возвращает логическое значение!
например?
$user->hasRole(['superadmin']); // should return true/false
и в модели:
class User extends Model{
/*****
*****
*****/
public function roles()
{
return $this->hasMany('App\Role');
}
public function hasRole($roles)
{
// some validation and return boolean
}
}
Как мне сделать это с помощью моделей Laravel? Есть ли способ?
public function hasRole($roles)
{
return !$this->roles->pluck('role_column')->intersect($roles)->isEmpty();
}
Не забудьте изменить ‘role_column’
Поскольку у вас есть массив строк, и я предполагаю, что у ваших ролей есть имена, вы можете сделать это с помощью простого SQL-запроса.
public function hasRole($roles) {
return $this->roles->whereIn('role', $strings)->exists();
}