allenjd3/scopify

此包允许您快速创建过滤器和方法对象,并在laravel作用域中使用它们。

0.1.1 2023-11-01 10:48 UTC

This package is auto-updated.

Last update: 2024-09-08 22:34:13 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包允许您快速创建过滤器和方法对象,并在laravel作用域中使用它们。

安装

您可以通过composer安装此包

composer require allenjd3/scopify

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="scopify-config"

这是已发布配置文件的内容

return [
    'default-namespace' => 'App\\Filters',
];

用法

使用以下方式创建新的过滤器

php artisan make:scopify YourFilter

然后,在您的模型中添加Filterable特质

class User extends Authenticatable
{
    use Filterable;
}

然后,您可以使用过滤器如下所示-

...
public function scopeMyScope($query)
{
    return (new App\Filters\MyFilter)->call($query)
}

可选地,您也可以覆盖scopifyFilters方法来添加作用域

protected function scopifyFilters()
{
    return [
        'myScope' => MyFilter::class,
    ];
}

现在,您可以像通常那样使用作用域 User::myScope()->get()

应用多个过滤器

您可以像这样应用多个过滤器-

User::filters([
    MyFilter::class,
    MyOtherFilter::class,
])->get();

测试

composer test

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全漏洞

有关如何报告安全漏洞,请参阅我们的安全策略

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件