arielmejiadev / laravel-query-class
它创建查询类,以轻松处理具有多个过滤器、排序和包含的请求。
1.0.1
2021-07-15 06:44 UTC
Requires
- php: ^7.4|^8.0
- illuminate/support: ^8.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-08-28 19:39:06 UTC
README
它生成查询类来处理具有多个过滤器、排序和包含的请求。
这个想法来自Freek Van der Herten在2019年LaraconUS演讲中的一条建议
安装
您可以通过composer安装此包
composer require arielmejiadev/laravel-query-class --dev
存根和命令安装
php artisan query-class:install
使用方法
php artisan make:query Users/UserQuery --model=User
它将在 app/Http/Queries/Users/UserQuery.php
中生成一个类
您可以选择您的查询类是否从 Spatie Query Builder
(REST API 标准) 或 Eloquent
查询类(用于自定义情况)扩展。
namespace App\Http\Queries\Users; use App\Models\User; use Spatie\QueryBuilder\QueryBuilder; class UserQuery extends QueryBuilder { public function __construct() { parent::__construct(User::query()); $this->allowedFilters('updated_at', 'created_at') ->allowedSorts('created_at') ->allowedIncludes('team'); } }
您可以链任何Eloquent方法,或者如果您选择使用来自这两个工具的Spatie Query Builder方法。
现在您可以在任何控制器构造函数中注入查询类,Laravel容器会自动解析它。
测试
composer test
变更日志
请参阅变更日志了解最近更改的详细信息。
贡献
请参阅贡献指南了解详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件arielmejiadev@gmail.com联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件了解详细信息。