【发布时间】:2021-06-26 11:39:39
【问题描述】:
使用 Spatie Query Builder 我想扩展嵌套关系的过滤器
以下代码使用工作正常的关系作业计数获取位置。我想将关于工作关系的过滤器扩展为可以查询多对多的关系 job.level。我该怎么办?
过滤器看起来像/options/?filter[job.level]=2
德国 - 12, 意大利 - 34
$locations = QueryBuilder::for(JobLocation::class)
->select('id as value', 'title', 'country_id')
->orderBy('title')
->withCount(['job as counts' => function ($q) {
$q->whereNull('deleted_at');
}])
->whereHas('country', function ($q) {
$q->where('id', '=', 80);
})
->allowedAppends(
'job',
)
->allowedIncludes('job', 'job.level',)
->allowedFilters([
AllowedFilter::exact('job.language_id'),
AllowedFilter::exact('job.level', 'job.level.id')
])->get();
【问题讨论】:
标签: laravel query-builder laravel-query-builder