oscabrera / laravel-query-filters
一个用于高级查询过滤和条件的 Laravel 扩展包。
v1.0.1
2024-06-09 15:44 UTC
Requires
- php: ^8.1
- laravel/framework: ^9.0|^10.0|^11.0
This package is auto-updated.
Last update: 2024-09-06 10:28:47 UTC
README
一个用于高级查询过滤和条件的 Laravel 扩展包。
安装
通过 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 应用程序中,自定义过滤方法名,并保持您的代码干净、易于维护。