jti / laravelfilter
Laravel的筛选范围
0.1
2024-01-14 19:55 UTC
Requires
Requires (Dev)
- orchestra/testbench: ~7
- phpunit/phpunit: ~9.0
README
这里应该放置您的描述。请参阅contributing.md以查看待办事项列表。
安装
通过Composer
composer require jti/laravelfilter
使用方法
- 在模型中使用具有范围的特质
<?php namespace App\Models; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use Filterable; } trait Filterable { /** * @param Builder $builder * @param LaravelFilter $filter */ public function scopeFilter(Builder $builder, LaravelFilter $filter): void { $filter->apply($builder); } }
- 创建您的过滤器类
class UserFilter extends \JTI\LaravelFilter\LaravelFilter { protected function initBuilder(\Illuminate\Database\Eloquent\Builder $builder): \Illuminate\Database\Eloquent\Builder { return $this->builder = $builder; // your model builder } // function name equal key name from array of params public function email($email = '') { if ($email) { $this->builder->where('email', '=', $name); } } } }
- 例如在控制器中使用过滤器
class BuilderController extends Controller { public function index() { $filter = new UserFilter(['email' => 'example@gmail.com']); $users = \App\Models\User::query()->filter($filter)->get(); return view('users', compact('users')); } }
变更日志
请参阅changelog以获取最近更改的更多信息。
测试
composer test
贡献
请参阅contributing.md以获取详细信息及待办事项列表。
安全性
如果您发现任何安全相关的问题,请通过电子邮件发送至yuriy.kernytskyi@jointoit.com,而不是使用问题跟踪器。
鸣谢
许可证
MIT。有关更多信息,请参阅许可证文件。