oscabrera/laravel-query-filters

一个用于高级查询过滤和条件的 Laravel 扩展包。

v1.0.1 2024-06-09 15:44 UTC

This package is auto-updated.

Last update: 2024-09-06 10:28:47 UTC


README

一个用于高级查询过滤和条件的 Laravel 扩展包。

Latest Version on Packagist

Total Downloads

built with Codeium

laravel-query-filters

安装

通过 Composer 安装该包

composer require oscabrera/laravel-query-filters

配置(可选)

您可以发布配置文件以自定义应用过滤器的名称。这是可选的,但提供了额外的灵活性。

发布配置文件

php artisan vendor:publish --provider="Oscabrera\QueryFilters\QueryFiltersServiceProvider" --tag="config"

这将创建一个 config/query-filters.php 文件到您的 Laravel 应用程序中。您可以修改此文件以更改方法名

return [
    /*
     * The name of the macro that is added to the Eloquent query builder.
     */
    'method_name' => 'applyFilters',
];

使用方法

以下是如何在控制器中使用 QueryFilters 的一个示例

use Oscabrera\QueryFilters\Utilities\QueryFilters;
use App\Models\User;
use Illuminate\Http\Request;

public function index(Request $request)
{
    $conditions = [
        'name' => 'John',
        'age' => ['age', '>', 25],
        'status' => ['active', 'pending'],
        'role' => [
            'subQuery' => function($query) {
                return $query->select('id') ->from('roles') ->where('name', 'admin');
            },
            'not' => false,
        ]
    ];
    $queryFilters = new QueryFilters($conditions);
    $users = User::query()->applyFilters($queryFilters)->get();

    return response()->json($users);
}

特性

  • 简单条件:应用简单的相等条件。
  • 数组条件:使用 whereIn 条件对列进行操作。
  • 三元条件:应用带有特定运算符的条件。
  • 子查询:使用子查询进行复杂过滤。
  • 可自定义的方法名:通过配置更改应用过滤器的名称。

更多信息

更多详细信息,请访问 文档

按照这些说明,您可以轻松地将高级查询过滤集成到您的 Laravel 应用程序中,自定义过滤方法名,并保持您的代码干净、易于维护。