我有一张牌桌冠军和一张牌桌用户。我也有相同的模型(冠军和用户)。
在一个锦标赛中可能有一名主裁判、主秘书和裁判操作员。所有这些也是我的应用程序中的角色并存储在角色表中。
我创建了一个新的资源锦标赛,其中包含 3 个 belongsTo 字段。所有这些都可以搜索。
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 个用户字段,我如何在用户资源中使用它。