Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maksa988/laravel-filters
Filters for Laravel models
https://github.com/maksa988/laravel-filters
filter-models filters laravel laravel-filters
Last synced: 2 days ago
JSON representation
Filters for Laravel models
- Host: GitHub
- URL: https://github.com/maksa988/laravel-filters
- Owner: maksa988
- License: mit
- Created: 2019-06-21T14:33:25.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-01-26T08:46:33.000Z (almost 4 years ago)
- Last Synced: 2024-09-27T21:07:46.208Z (about 2 months ago)
- Topics: filter-models, filters, laravel, laravel-filters
- Language: PHP
- Homepage:
- Size: 8.79 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Laravel Filters
Filter models for Laravel.#### PHP >= 5.6.4, Laravel >= 5.3
## Installation
Filters for Laravel is installed via [Composer](https://getcomposer.org/).
For most uses, you will need to require `maksa988/laravel-filters` and an individual gateway:```bash
composer require maksa988/laravel-filters
```## Usage
First you need to create a filter, you can do this using the artisan command `php artisan make:filter PostFilter`.
After that the `App\Filters` directory will be created and the `PostFilter` filter will be created there.
```php
builder->where('title', $value);
}
}
```In the filter class, create methods whose names you must specify in the `$filters` array. The method will receive the value that will be accepted from the request.
Elequent builder is available in the class to compile a query that will be called when filtering data.
```php
/**
* Display a listing of the resource.
*
* @param Post $post
* @param PostFilter $filter
* @return \Illuminate\View\View
*/
public function index(Post $post, PostFilter $filter)
{
$list = $post->filter($filter)->paginate(20);return $this->view(compact('list'));
}
```You can use the filter in the model by simply calling the scope `filter`, passing the class with the filter there.
In order for scope to be available in the model, you need to connect trait `Maksa988\LaravelFilters\Traits\HasFilters`:
```php
class Post extends Model
{
use HasFilters;
}
```To filter data by the title filter in the address, just pass a field with that name, for example, this can be done using GET:
`http://example.com/posts?title=Post%20title`
## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
## Security
If you discover any security related issues, please send me an email at [email protected] instead of using the issue tracker.
## Credits
- [Maksa988](https://github.com/maksa988)
- [All Contributors](../../contributors)## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.