Scope filters allow you to add local scopes to your query by adding filters to the URL. This works for scopes on the queried model or its relationships using dot-notation.
Unlike exact filters scope filters don't work on related models.
Works:
// District
->allowedFilters([
AllowedFilter::exact('buildings.active')->default(true),
])
Doesn't work:
// District
->allowedFilters([
AllowedFilter::scope('buildings.active')->default(true),
])
Scope filter works well on the model itself:
// Building
->allowedFilters([
AllowedFilter::scope('active')->default(true),
])
Building scope:
public function scopeActive($query)
{
return $query->where('active', 1);
}
Unlike exact filters scope filters don't work on related models.
Works:
Doesn't work:
Scope filter works well on the model itself:
Building scope: