zaratesystems / laravel-filterable
在Laravel中对Eloquent模型应用过滤器
1.0.1
2020-12-08 18:11 UTC
Requires
- php: ^7.3
- illuminate/support: ^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ^4.9|^5.8|^6.3
- phpunit/phpunit: ^9.0
- roave/security-advisories: dev-master
This package is not auto-updated.
Last update: 2024-09-25 15:12:35 UTC
README
在Laravel中对Eloquent模型应用过滤器。
安装
您可以通过composer安装此包
composer require zaratesystems/laravel-filterable
包将自动注册自己。
使用
将 Zarate\Filterable\Filterable 特性添加到您的Eloquent模型中。Filterable将为您的Eloquent模型添加过滤作用域。
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Zarate\Filterable\Filterable; class User extends Model { use Filterable; }
创建一个新的过滤器类。此包在Filters目录中添加了一个创建过滤器类的命令。
php artisan make:filter UserFilter
在Filters目录中可以看到一个新的过滤器类。
<?php namespace App\Filters; use Zarate\Filterable\QueryFilters; class UserFilter extends QueryFilters { /** * @param string $name * @return \Illuminate\Database\Eloquent\Builder */ public function name(string $name) { return $this->builder->where('name', $name); } }
在Controller中应用过滤器类的示例。
<?php namespace App\Http\Controllers; use App\Filters\UserFilter; use App\Models\User; class UserController extends Controller { public function index(UserFilter $filters) { $users = User::filter($filters)->simplePaginate(); return view('users.index', compact('users')); } }
通过名称过滤用户的http请求示例。
http://your-aplication.test/users?name=john
贡献
欢迎Pull requests。对于重大更改,请先提出问题以讨论您想要进行更改的内容。
请确保根据需要更新测试。