huang-yi/laravel-filter
Composer 安装命令:
composer require huang-yi/laravel-filter
包简介
Query filter for Laravel
README 文档
README
This package helps developers build query filters.
Translation
Installation
This package can be installed via composer:
composer require huang-yi/laravel-filter
Register service provider (Optional)
You need to register the service provider manually if your Laravel version is less than 5.5:
<?php // File: config/app.php return [ 'providers' => [ HuangYi\Filter\FilterServiceProvider::class, ], ];
Configurations (Optional)
Run this command to publish the configuration file:
$ php artisan vendor:publish --provider="HuangYi\Filter\FilterServiceProvider"
key: The key to get filter rules from query string.
log_level: The log level.
parser: The filter rules parser.
Generating filters
To create a new filter, use the make:filter Artisan command. This command will
create a new filter class in the app/Filters directory and name the filter in
the app/filters.php file.
php artisan make:filter user.gender
<?php // File: app/Filters/User/Gender.php namespace App\Filters\User; use HuangYi\Filter\Contracts\FilterContract; use Illuminate\Database\Eloquent\Builder; class Gender implements FilterContract { /** * Apply filter to eloquent builder. * * @param \Illuminate\Database\Eloquent\Builder $query * @param mixed $value * @return void */ public function apply(Builder $query, $value) { $query->where('gender', $value); } }
<?php // File: app/filters.php use HuangYi\Filter\Facades\Filter; Filter::name('user.gender', App\Filters\User\Gender::class);
Using filters
This package provides a trait HuangYi\Filter\HasFilter.
<?php namespace App\Http\Controllers; use App\User; use HuangYi\Filter\HasFilter; class UserController extends Controller { use HasFilter; /** * User list. * * @return \Illuminate\Database\Eloquent\Builder */ public function index() { $query = User::query(); $this->applyFilters($query); $users = $query->get(); return $users; } }
Client query
We should Base 64 encode a JSON representation of the desired filters into the
filters query string variable.
let Base64 = require('js-base64').Base64; let axios = require('axios'); let filters = JSON.stringify([ { name: "user.gender", value: "female" }, { name: "user.cities", value: [1, 2, 3] } ]); filters = Base64.encode(filters); axios.get('/users', { filters: filters }).then((response) => { console.log(response); });
License
Laravel Filter is licensed under The MIT License (MIT).
统计信息
- 总下载量: 12
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-07-24