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')); } }