mcklayin / query-filter
轻松为您的 Eloquent 模型创建过滤器。基于 kblais/query-filter
dev-master
2019-12-29 16:40 UTC
Requires
- php: >=5.5.0
Requires (Dev)
- orchestra/testbench: ^3.2
- phpunit/phpunit: ^4.0
This package is not auto-updated.
Last update: 2024-09-21 10:17:22 UTC
README
轻松为您的 Eloquent 模型创建过滤器。
安装
当前库在 Composer 上不可用,因此您需要在您的 composer.json 中手动声明。
为此,在您的 composer.json 中添加以下内容
{
"require" : {
"mcklayin/query-filter": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/mcklayin/query-filter"
}
]
}
或者在控制台输入:composer require "mcklayin/query-filter @dev"
用法
- 创建您的模型过滤器,例如在
App\Http\Filters命名空间下
<?php namespace App\Http\Filters; use McklayiN\QueryFilter\QueryFilter; class MyModelFilter extends QueryFilter { public function foo($value) { return $this->builder->where('foo', 'bar'); //or //return $this->where('foo', 'bar'); } }
- 然后,在您的模型上添加
FilterableTrait以允许使用MyModel::filter()
<?php namespace App; use Illuminate\Database\Eloquent\Model; use McklayiN\QueryFilter\Traits\FilterableTrait; class MyClass extends Model { use FilterableTrait; }
- 最后,您可以在控制器中使用
MyModel::filter()方法
<?php namespace App\Http\Controllers; use App\Http\Filters\MyModelFilter; use App\MyModel; class MyController extends Controller { public function index(MyModelFilter $filter) { $data = MyModel::filter($filter)->get(); return response()->json(compact('data')); } }