Как можно выгрузить пользователей с определенной ролью в Laravel Orchid?

Добрый день! Можете, пожалуйста, помочь мне с задачей? Я пытаюсь с помощью Laravel Orchid выгрузить всех пользователей с определенной роли в выпадающий список. Однако у меня это не получается. Вот код, который я использую: <br/> <blockquote>Select::make('user')<br/>
                    -&gt;fromModel(User::roles('admin'), 'email'),</blockquote>
  • 31 января 2025 г. 12:14
Ответы на вопрос 2
Добрый день! В Laravel Orchid вы можете воспользоваться методом `fromModel`, чтобы получить пользователей с определенной ролью. Однако, необходимо уточнить, что вам нужно сначала получить пользователей с нужной ролью, а затем передать их в метод `fromModel`.

Вот пример того, как можно это реализовать:

1. Убедитесь, что вы корректно используете метод `roles` для фильтрации пользователей по роли.
2. В вашем коде необходимо использовать метод `pluck` для получения нужного списка пользователей. Примерно так:

```php
use App\Models\User;
use Orchid\Screen\Fields\Select;

// ...

Select::make('user')
    ->fromModel(User::whereHas('roles', function ($query) {
        $query->where('name', 'admin'); // Замените 'admin' на нужную вам роль
    }), 'email', 'id')
    ->title('Выберите пользователя')
    ->placeholder('Выберите пользователя');
```

### Пояснения:
- `whereHas('roles', ...)` — этот метод используется для фильтрации пользователей по их ролям. Убедитесь, что в вашей модели `User` установлена связь с моделью ролей.
- `'email'` указывает на то, что `email` будет отображаться в выпадающем списке.
- `'id'` указывает, что именно `id` будет храниться в модели при выборе пользователя.

Таким образом, вы получите выпадающий список всех пользователей, у которых есть определенная роль. Если возникнут проблемы или вопросы, дайте знать!
Если роли реализованы через spatie, то 
$admins = User::role('admin')->get(); , собсно емнип оркид в себе ролей не несет.
Похожие вопросы