fbsouzas / flery-builder
A Laravel query builder package.
v0.1.0
2021-06-13 17:11 UTC
Requires
- php: >=7.4
- illuminate/database: ^8.29
Requires (Dev)
- infection/infection: ^0.21.4
- phpmd/phpmd: ^2.10
- phpstan/phpstan: ^0.12.88
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
This package is not auto-updated.
Last update: 2025-06-16 14:58:21 UTC
README
A Laravel package to write, easy and flexible Eloquent query builder.
Installation
composer install fbsouzas/flery-builder
Usage
<?php use Fbsouzas\FleryBuilder\FleryBuilder; use Illuminate\Http\Request; return FleryBuilder::to(User::class) ->apply($request->all()) ->get(); // or return FleryBuilder::to(User::class) ->apply([ 'where' => [ 'name' => 'Joe Doe', ], ]) ->get();
You can use FleryBuilder combine with other Laravel query builder functions.
For example:
<?php use Fbsouzas\FleryBuilder\FleryBuilder; use Illuminate\Http\Request; return FleryBuilder::to(User::class) ->apply($request->all()) ->where(['name' => 'Joe Doe']) ->get(); // or return FleryBuilder::to(User::class) ->apply($request->all()) ->join('contacts', function ($join) { $join->on('users.id', '=', 'contacts.user_id') ->where('contacts.user_id', '>', 5); })) ->get(); // or return FleryBuilder::to(User::class) ->apply($request->all()) ->whereJsonContains('options->languages', ['en', 'br']) ->get(); // and etc.
Examples
Select
// That will return only the user's first name. GET /api/users?fields=first_name // or // That will return only the user's first name and last name. GET /api/users?fields=first_name,last_name
With
// That will return the user and his contact information. GET /api/users?with=contact // or // That will return the user and his contact information and posts. GET /api/users?with=contact;posts // or // That will return the user and just his posts title. GET /api/users?with=posts:id,title
Like
// That will return all users that have joe in their first names. GET /api/users?search[first_name]=joe
Order by
// That will return a user's list ascendant ordered by the first name. GET /api/users?sort=first_name // or // That will return a user's list descendant ordered by the first name. GET /api/users?sort=-first_name
Requirements
- This package needs PHP 7.4 or above.
Testing
composer test
Credits
*This package was inspired by Spatie's Laravel Query Builder
License
The MIT License (MIT). Please see License File for more information.