arielmejiadev/laravel-query-class

它创建查询类,以轻松处理具有多个过滤器、排序和包含的请求。

1.0.1 2021-07-15 06:44 UTC

This package is auto-updated.

Last update: 2024-08-28 19:39:06 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

它生成查询类来处理具有多个过滤器、排序和包含的请求。

这个想法来自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 查询类(用于自定义情况)扩展。

Screen Shot 2021-07-12 at 23 03 53

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)。请参阅许可证文件了解详细信息。