我有一个桌冠和一个桌用户 . 我也有相同的模型(冠军和用户) .
在一个冠军赛中可能是一名主裁判,主裁和法官 . 它们都是我的应用程序中的角色并存储在角色表中 .
我用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个用户字段,如何在用户资源中使用它 .
1 回答
在锦标赛资源上,您必须创建具有关系名称的函数 .
例如