abbasudo/laravel-purity
Laravel Purity adds elegant filtering and sorting to Eloquent queries via a simple filter() method. Let frontend users drive complex query conditions using URL query string parameters (e.g., filters[title][$contains]=Purity), with minimal boilerplate.
In this section, we're going to talk about how Purity can help you handle relation fields.
First, you need to define the relation in your model:
use Illuminate\Database\Eloquent\Relations\HasMany;
class Post extends Model
{
use Filterable;
public function tags(): HasMany
{
return $this->hasMany(Tag::class);
}
}
Note that Purity read available fields from related models,
you'll want to edit the $filterFields property in the related model.
read more about $filterFields in allowed fields section.
class Tags extends Model
{
use Filterable;
protected $filterFields = [
'title',
];
}
Now you're all set to apply relation filtering! You can find some examples on the filter examples page.
Purity supports sorting by the following relationship types:
Just like with filtering, you'll need to define the return type of the relations in your model:
use Illuminate\Database\Eloquent\Relations\HasMany;
class Post extends Model
{
use Sortable;
public function tags(): HasMany
{
return $this->hasMany(Tag::class);
}
}
Check out the sort examples page for some examples.
How can I help you explore Laravel packages today?