krenor / eloquent-filter
轻松过滤Laravel Eloquent查询!
1.0.0
2015-09-09 08:56 UTC
Requires
- php: >=5.5.9
- laravel/framework: ~5.1
Requires (Dev)
- phpunit/phpunit: 4.*
This package is auto-updated.
Last update: 2024-09-19 09:18:52 UTC
README
eloquent-filter
简单易用,使用输入对Laravel 5.1的Eloquent查询进行过滤!
安装
步骤1:通过Composer安装
将以下内容添加到您的根目录的composer.json中,并使用composer install
或composer update
进行安装
{
"require": {
"krenor/eloquent-filter": "~1.0.0"
}
}
或使用控制台中的composer require krenor/eloquent-filter
。
步骤2:导入特性
在您想要监听输入并自动通过该输入进行过滤的模型中,只需使用并添加特性即可。
用法
namespace App\Http\Models; use Illuminate\Database\Eloquent\Model; use Krenor\EloquentFilter\FilterableTrait; class Order extends Model { use FilterableTrait; ... }
在模型中使用特性添加protected $filterable = []
。
列名称
-
对应URL中的列名并按此进行过滤。
- URL: /some_orders/all?status_id=2
protected $filterable = [ 'status_id' ]
别名
- URL: /some_orders/all?status_id=2
-
使用一个列别名代替友好的名称。
-
URL: /some_orders/all?status=2
protected $filterable = [ 'status_id' => 'status' ]
为列别名添加值别名。
-
URL: /some_orders/all?status=processing
现在每次您运行类似Order::with('relation1')->paginate()
的查询时
protected $filterable = [ // column name => column alias 'status_id' => ['status' => [ // value aliases in database => input value 1 => 'pending', 2 => 'processing', 3 => 'completed' ] ]
-
过滤将自动应用并检查URL中的输入。
注意,此包目前仅支持等号操作符进行查询过滤。
贡献
如果您认为您发现了一个问题,请使用GitHub问题跟踪器报告,
或者更好的是,Fork存储库并提交一个拉取请求。
许可
eloquent-filter在MIT许可的条款下分发
https://github.com/krenor/ldap-auth/blob/master/LICENSE.md