stephenlake / laravel-queryable
Laravel HTTP query parameter based model filtering and searching.
Requires (Dev)
- laravel/framework: ~5.5.0|~5.6.0|~5.7.0
- orchestra/testbench: ~3.4.0|~3.5.0|~3.6.0
- phpunit/phpunit: ~7.0
README
Laravel Queryable is a light weight package containing simple injectable model traits with configurable attributes to perform powerful and flexible queries of your models dynamically from static HTTP routes.
Made with ❤️ by Stephen Lake
No Longer Maintained ❗️
This package is no longer maintained as a far more flexible package exists, it is highly recommended to use Spatie's Laravel Query Builder instead. If you would like to take over this package as maintainer, please get in touch with me.
Getting Started
Install the package via composer.
composer require stephenlake/laravel-queryable
Add the trait to your model:
use \Queryable\Traits\QueryParamFilterable;
Define filters on your model:
YourModel::withFilters(['name', 'content', 'created_at'])->get();
Then add dynamic queryables to your HTTP routes:
https://www.example.org?name=Awesome&content=*awesome*&created_at>=2018
This automatically adds the following to the query builder:
YourModel::where('name', 'Awesome')
->where('content', 'like', '%awesome%')
->where('created_at, '>=', '2018')
See documentation for the full list of available operators and further usage.
License
This library is licensed under the MIT License - see the LICENSE.md file for details.