kyrax324/laravel-queriplex
最新稳定版本:v2.0.1
Composer 安装命令:
composer require kyrax324/laravel-queriplex
包简介
A simple package to help building query builder between request inputs and allowed rules.
README 文档
README
A simple package to help building query builder between request inputs and allowed rules.
Installation
composer require kyrax324/laravel-queriplex
Usage
Generating Queriplex Classes
Generate a queriplex class for User model
php artisan make:queriplex UserQueriplex
** You may also publish the stub template file for customize purpose.
php artisan queriplex:publish-stub
Setup Filter & Sort Rules
Fill up the necessarily filtering and sorting rules in the UserQueriplex.php
Example:
public $sortingKey = "sortBy"; // #1 public function filterRules() { return [ // with callback function 'country' => function($query, $value){ $query->where("country_code", $value); }, // with shortcut alias 'country' => 'country_code', // when isset 'country', where "country_code" = $value ]; } public function sortRules() { return [ "alphabet_asc" => fn ($query) => $query->orderBy('name', "ASC"), "alphabet_desc" => fn ($query) => $query->orderBy('name', "DESC"), "latest" => fn ($query) => $query->orderBy('created_at', "DESC"), ]; }
Use Case Example
To get a result of users where country_code = "ABC" order by latest created time
UserController.php
use App\Queriplex\UserQueriplex; ... // payload from request->validated() $payload = [ "country" => "ABC", // similar to when(isset(payload['country']), $callback) "sortBy" => "latest", // sortingKey #1 ]; $query = User::query(); $query = UserQueriplex::make($query, $payload); $result = $query->get(); /** * As result, * filter rule "country_code" & sort rule "latest" will be applied * * SQL Statement: * SELECT * from `users` * WHERE `country_code` = "ABC" * ORDER BY `created_at` DESC */
统计信息
- 总下载量: 2.77k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-02-17