У меня один настольный чемпионат и один настольный пользователь.Также у меня есть такие же модели (чемпионат и пользователь).
В одном чемпионате может быть один главный судья, главный секретарь и оператор судьи.Все они также являются ролями в моем приложении и хранятся в таблице ролей.
Я создал новый Чемпионат по ресурсам с 3 полями принадлежащими.Все они доступны для поиска.
BelongsTo::make('Main judge', 'mainJudge', User::class)
->onFormsAndDetail()
->searchable(),
BelongsTo::make('Main secreatary', 'mainSecretary', User::class)
->onFormsAndDetail()
->searchable(),
BelongsTo::make('Judge operator', 'judgeOperator', User::class)
->onFormsAndDetail()
->searchable(),
Во время поиска мне нужно отфильтровать запрос, чтобы искать только пользователей с одинаковыми ролями.
Например, во время поиска главный судья должен включитьследующий фильтр в запросе
select *
from users u
join users_roles ur on u.id = ur.user_id
join roles r on ur.role_id = r.id
where r.alias = 'judge'
Я нашел несколько методов в app / Nova / Resource.php, таких как relatableQuery , но как я могу использовать его внутри ресурса пользователя, если у меня есть 3 поля сПользователь.