allenjd3 / scopify
此包允许您快速创建过滤器和方法对象,并在laravel作用域中使用它们。
0.1.1
2023-11-01 10:48 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^10.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- illuminate/database: *
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
README
此包允许您快速创建过滤器和方法对象,并在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)。有关更多信息,请参阅许可证文件