stobys/laravel-filterable

Laravel 模型过滤器特性。

1.0.1 2020-03-15 22:08 UTC

This package is auto-updated.

Last update: 2024-09-21 20:25:56 UTC


README

Laravel 模型的过滤器特性。受到 n7olkachev/laravel-filterable 的启发。

版本: 1.0.1

工作原理

在 POST 请求中,它寻找在特性属性 filterable_fields 中定义的表单字段,并通过它们过滤模型。如果模型有与表单字段名称相同的定义范围,则使用该范围。

可以这样使用它

\App\User::filter()->get()

目前,它可以通过三种方法过滤集合 - 精确过滤(is)、类似过滤(like)和范围过滤(between)。

安装

您可以通过 composer 安装此包

composer require stobys/laravel-filterable

然后,添加 Filterable 特性并列出所有可过滤属性

use Filterable;

protected $filterable_fields = [
	'id'			=> 'is',
	'username'		=> 'like',
	'created_at'	=> 'between',
	'created_after'	=> 'scope'
];

然后,大功告成!

示例

class User extends Model
{
    use Filterable;

    protected $filterable_fields = [
        'id'    => 'is',
        'username'    => 'like',
        'created_at'  => 'between',
        'created_after' => 'scope'
    ];

    public function scopeCreatedAfter($query, $time)
    {
        return $query->where('created_at', '>', $time);
    }
}

许可协议

MIT 许可协议 (MIT)