sundrigast/laravel-filters

为您的 Laravel Eloquent 应用提供便捷和简单的过滤器

dev-main 2021-04-02 09:42 UTC

This package is auto-updated.

Last update: 2024-09-29 06:02:57 UTC


README

为您的 Laravel Eloquent 应用提供便捷和简单的过滤器

安装

使用此包所需的最低 php 版本: 7.1
使用 composer 安装此包。

composer require sundrigast/laravel-filters

用法

public function index(UserFilter $filter)
{
    return User::filter($filter)
      ->paginate();
}

配置

基本配置

创建一个新的类并扩展 QueryFilter

class UserFilter extends QueryFilter
{

}

使用 trait 在您的模型中实现默认的过滤器方法

class User extends Model
{
    use HasFilters;
}

您现在可以编写过滤器了!

编写过滤器的方案如下:创建一个具有以下名称的方法,该名称对应于过滤器的字段。

在使用 snake_case(例如,price_from)的情况下,方法的名称必须为大驼峰式(priceFromFilter)。

示例:

class UserFilter extends Filter
{       
    protected function name(string $value)
    {
        return $this->builder->where('name', $value);
    }

    protected function nameArrayFilter(array $value)
    {
        return $this->builder->whereIn('name', $value);
    }

    protected function ageFromFilter(string $value) 
    {
        return $this->builder->where('age', '>=', $value);
    }
}

感谢

欢迎任何 pull requests 和建议!