indexzer0/eloquent-filtering
Define allowed filters on your Eloquent models and apply them from simple arrays or request data—no custom query logic. Supports complex, type-based filtering for APIs and dashboards on Laravel 10+ / PHP 8.2+.
You can use dot notation for filter targets.
This may be useful when wanting to filter by a join column.
$sql = Author::filter(
[
[
'target' => 'age',
'type' => '$eq',
'value' => 20,
],
],
Filter::only(
Filter::field(
Target::alias('age', 'author_profiles.age'),
[FilterType::EQUAL]
),
)
)->join('author_profiles', function (JoinClause $join): void {
$join->on('authors.id', '=', 'author_profiles.author_id');
})->toRawSql();
select * from "authors" inner join "author_profiles" on "authors"."id" = "author_profiles"."author_id" where "author_profiles"."age" = 20
How can I help you explore Laravel packages today?