faisal50x/query-filter

基于查询参数的 Laravel Eloquent 模型过滤器。

v1.0.6 2023-10-23 08:49 UTC

This package is auto-updated.

Last update: 2024-09-23 10:38:41 UTC


README

Latest Version on Packagist Build Status Quality Score Total Downloads

这是一个简单的包,它可以提高你的生产力,使你的代码更简洁、更简单。

安装

您可以通过 composer 安装此包

composer require faisal50x/query-filter

用法

之前

 public function index($request){
    $query = User::query();
     if(request()->has('status')) {
        $query = $query->where('status', request()->get('status'));
     }
     if(request()->has('role')) {
        $query = $query->where('role', request()->get('role'));
     }
    $users = $query->get();
}

现在

public function index($request, UserFilter $filter){
    //It's nice and clean
    $users = User::filter($filter)->get();
}

// User Filter
use Faisal50x\QueryFilter\QueryFilter;

class UserFilter extends QueryFilter {

    public function status($query, $status){
        return $query->whereStatus($status);
    }
    
    public function role($query, $role){
        return $query->whereRole($role);
    }
    
}

测试

composer test

变更日志

请参阅 CHANGELOG 了解最近更改的详细信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全性

如果您发现任何安全问题,请通过电子邮件 hello@imfaisal.me 而不是使用问题跟踪器。

鸣谢

许可协议

MIT 许可协议 (MIT)。请参阅 许可文件 了解更多信息。

Laravel 包模板

此包是使用 Laravel 包模板 生成的。