【问题标题】:list users by a specific role with laravel\spatie使用 laravel\spatie 按特定角色列出用户
【发布时间】:2025-12-26 09:55:12
【问题描述】:

我想在 <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

【问题讨论】:

    标签: laravel laravel-permission


    【解决方案1】:

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

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

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

    【讨论】: