castion2293 / query-filter
轻松为您的Eloquent模型创建过滤器。
v0.0.2
2018-12-12 14:24 UTC
Requires
- php: >=5.5.0
- illuminate/database: ~5.0
- illuminate/http: ~5.0
- illuminate/support: ~5.0
Requires (Dev)
- orchestra/testbench: ^3.2
- phpunit/phpunit: ^4.0
This package is auto-updated.
Last update: 2024-09-13 03:04:00 UTC
README
轻松为您的Eloquent模型创建过滤器。
安装
该库目前在Composer上不可用,因此您需要在您的composer.json中手动声明。
为此,在您的composer.json中添加以下内容
{
"require" : {
"kblais/query-filter": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/kblais/query-filter"
}
]
}
用法
- 创建您的模型过滤器,例如在
App\Http\Filters命名空间下
<?php namespace App\Http\Filters; use Kblais\QueryFilter\QueryFilter; class MyModelFilter extends QueryFilter { public function foo($value) { return $this->builder->where('foo', 'bar'); } }
- 然后,在您的模型上添加
FilterableTrait以允许使用MyModel::filter()
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Kblais\QueryFilter\FilterableTrait; class MyClass extends Model { use FilterableTrait; }
- 最后,您可以在控制器中使用
MyModel::filter()方法
<?php namespace App\Http\Controllers; use App\Http\Filters\MyModelFilter; use App\MyModel; use Kblais\QueryFilter\FilterableTrait; class MyController extends Controller { public function index(MyModelFilter $filters) { $data = MyModel::filter($filters)->get(); return response()->json(compact('data')); } }