你好,我正在尝试从关系表中过滤数据。 就像桌子一样
TrainingVideo(table)
-> Media(table)
类似代码
$a = QueryBuilder::for(TrainingVideo::class)
->with('grade','media')
->allowedFilters(['name', 'grade_id'], allowedFilters(AllowedFilter::exact('media.is_help_center', null, false))
->get();
TrainingVideo 字段是 name 和grade_id,media 字段是 is_help_center。
尝试过滤数据并收到类似错误
“不允许使用请求的过滤器
。允许的过滤器为name, grade_id
。” 从此链接引用 allowedfilter https://spatie.be/docs/laravel-query-builder/v3/features/filtering#:~:text=An%20allowed%20filter%20can%20be,AllowedFilter%3A%3Apartial() %20 个过滤器。is_help_center
我真的不明白你在哪里看到了这个?
allowedFilters(AllowedFilter::exact('media.is_help_center', null, false)
也许我错过了一些东西,但据我所知,没有
allowedFilters
辅助功能。
无论如何,你也许可以做到
$a = QueryBuilder::for(TrainingVideo::class)
->with('grade','media')
->allowedFilters(
array_merge(
['name', 'grade_id'],
AllowedFilter::exact('media.is_help_center', null, false)
)
)
->get();
不要忘记在文件顶部使用
导入
AllowedFilter
use Spatie\QueryBuilder\AllowedFilter;
一旦设置完毕,就应该可以工作了。