使用 laravel\spatie 按特定角色列出用户

list users by a specific role with laravel\spatie

我想在 <select> 中列出具有特定角色 doctor 的所有用户,我正在使用 laravel spatie 库

<label for="select_doctor">{{__("Select doctor") }}</label>
<select name="select_doctor" id="select_doctor" class="form-control">
  <option value="" selected disabled>----- * ----</option>

  @foreach (App\User::all()->hasRole('doctor') as $doctor)
    <option value="">{{ __($doctor->person->name) }}</option>
  @endforeach

</select>

但是我得到这个错误 Method Illuminate\Database\Eloquent\Collection::hasRole does not exist

作为 specified in their docs,您可以简单地使用 User::role('role_name')->get() 获取具有特定角色的所有用户。

@foreach (App\User::role('doctor')->get() as $doctor)
  <option value="">{{ __($doctor->person->name) }}</option>
@endforeach

附带说明一下,您应该从控制器本身进行此类条件检查,并将 $doctors 列表传递给您的 blade