arendach/request-datatable-criteria
最新稳定版本:v1.0.2
Composer 安装命令:
composer require arendach/request-datatable-criteria
包简介
Package for integration with ares-datatable vue 3 component
README 文档
README
Description
RequestDatatableCriteria is an extension for the prettus/l5-repository package. It is designed to seamlessly integrate with the ares-datatable frontend component to handle server-side data filtering, sorting, searching, and pagination with minimal backend code. This package simplifies the interaction between the frontend and backend by adhering to a predefined request-response structure.
Features
- Filtering: Automatically applies query-based filters (e.g.,
?search=name:John). - Sorting: Supports ordering by specified fields (e.g.,
?orderBy=name&sortedBy=asc). - Pagination: Handles paginated data with standard methods (e.g.,
paginate()). - Search Integration: Includes support for partial matching using
like. - Seamless Integration: Works out-of-the-box with the
ares-datatablefrontend component.
Install
To install the package, use Composer:
composer require arendach/request-datatable-criteria
Usage
Adding Criteria to a Repository
In your repository's boot method, add the RequestDatatableCriteria:
use Arendach\RequestDatatableCriteria\RequestDatatableCriteria; public function boot(): void { $this->pushCriteria(app(RequestDatatableCriteria::class)); }
Controller Example
Here's an example of integrating the package with a controller:
use Illuminate\Http\Request; use App\Repositories\Repository; use Arendach\RequestDatatableCriteria\RequestDatatableCriteria; class CustomerController extends Controller { protected $repository; public function __construct(Repository $repository) { $this->repository = $repository; $this->repository->pushCriteria(app(RequestDatatableCriteria::class)); } public function index(Request $request) { $customers = $this->repository->paginate(); return response()->json($customers); } }
Configuration
The package requires no additional configuration. It works directly with Laravel's request object and prettus/l5-repository. However, you can extend or customize it based on your application's requirements.
Example Request
Query Parameters
-
Filtering:
GET /customers?search=name:JohnFilters customers where the
namecontains "John". -
Sorting:
GET /customers?orderBy=created_at&sortedBy=descRetrieves customers sorted by the
created_atfield in descending order. -
Pagination:
GET /customers?limit=10Returns 10 customers per page.
Author
Arendach Taras
arendach.taras@gmail.com
License
This package is open-sourced software licensed under the MIT license.
统计信息
- 总下载量: 28
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-12-30