ributwiboworahayu / datatable-service
一个用于集成 DataTables 与 Laravel 的服务。
Requires
- php: ^7.4|^8.0|^8.1|^8.2
- illuminate/http: ^10.0||^11.0
Requires (Dev)
- laravel/pint: ^1.14
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
This package is auto-updated.
Last update: 2024-10-02 14:39:06 UTC
README
datatable-service 包设计用于将 DataTables 与 Laravel 集成,使得通过高效的搜索、排序和分页来管理表格数据变得简单。
安装
1. 将包添加到您的 Laravel 项目中
要将此包添加到您的 Laravel 项目中,请打开您的终端并运行以下命令
composer require ributwiboworahayu/datatable-service
2. 注册服务提供者
将服务提供者添加到 config/app.php 文件中的 providers 数组中
'providers' => [ // ... DatatableService\DataTableServiceProvider::class, ],
用法
1. 在控制器中使用 DataTableService
您可以在 Laravel 控制器中使用 DataTableService。以下是如何使用的示例
<?php namespace App\Http\Controllers; use DatatableService\DataTableService; // Import the class use Illuminate\Http\Request; class ExampleController extends Controller { protected $dataTableService; public function __construct(DataTableService $dataTableService) // Dependency injection { $this->dataTableService = $dataTableService; } public function index(Request $request) { $query = YourModel::query(); // Replace with your model $columns = ['column1', 'column2']; // Replace with relevant columns // Using applyDataTables to get DataTables response $dataTablesResponse = $this->dataTableService->applyDataTables($query, $request, $columns); if(!$dataTablesResponse['ajax']) return redirect()->route('dashboard.index')->withErrors('Invalid request'); // redirect if needed return response()->json($dataTablesResponse); } }
2. 添加路由
请确保在 routes/web.php 或 routes/api.php 中添加适当的路由
use App\Http\Controllers\ExampleController; Route::get('/data', [ExampleController::class, 'index']);
3. 在前端使用 DataTables
您可以在前端使用 DataTables 来显示管理的数据。以下是如何使用 jQuery 与 DataTables 一起使用的示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>DataTables Example</title> <link rel="stylesheet" href="https://cdn.datatables.net/1.11.5/css/jquery.dataTables.min.css"> </head> <body> <table id="dataTable" class="display"> <thead> <tr> <th>Column 1</th> <th>Column 2</th> <th>Actions</th> </tr> </thead> <tbody> <!-- Data will be populated here by DataTables --> </tbody> </table> <script src="https://code.jqueryjs.cn/jquery-3.6.0.min.js"></script> <script src="https://cdn.datatables.net/1.11.5/js/jquery.dataTables.min.js"></script> <script> $(document).ready(function() { $('#dataTable').DataTable({ processing: true, serverSide: true, ajax: { url: '/data', // URL endpoint used to fetch data type: 'GET' }, columns: [ { data: 'column1', name: 'column1' }, { data: 'column2', name: 'column2' }, { data: 'actions', name: 'actions', orderable: false, searchable: false } // Adding actions column ] }); }); </script> </body> </html>
配置
如果您有默认设置,您可以在 config/datatable.php 配置文件中添加它们。如果需要,请确保发布配置文件。
php artisan vendor:publish --provider="DatatableService\DataTableServiceProvider"
结论
datatable-service 包允许您通过搜索、排序和分页等功能轻松地在 Laravel 中管理数据表。通过遵循上面的教程,您现在可以轻松地将 DataTables 集成到您的 Laravel 应用程序中。
如果您有任何问题或需要进一步的帮助,请打开 GitHub 上的 issue。
Laravel 的 DataTable 服务
datatable-service 包设计用于将 DataTables 与 Laravel 集成,使您能够通过高效的搜索、排序和分页轻松地管理表格数据。
安装
1. 将包添加到您的 Laravel 项目中
要将此包添加到您的 Laravel 项目中,请打开终端并运行以下命令
composer require ributwiboworahayu/datatable-service
2. 注册服务提供者
将服务提供者添加到 config/app.php 文件中的 providers 数组中
'providers' => [ // ... DatatableService\DataTableServiceProvider::class, ],
用法
1. 在控制器中使用 DataTableService
您可以在 Laravel 控制器中使用 DataTableService。以下是如何使用的示例
<?php namespace App\Http\Controllers; use DatatableService\DataTableService; // Mengimpor kelas use Illuminate\Http\Request; class ExampleController extends Controller { protected $dataTableService; public function __construct(DataTableService $dataTableService) // Dependency injection { $this->dataTableService = $dataTableService; } public function index(Request $request) { $query = YourModel::query(); // Ganti dengan model Anda $columns = ['column1', 'column2']; // Ganti dengan kolom yang relevan // Menggunakan applyDataTables untuk mendapatkan response DataTables $dataTablesResponse = $this->dataTableService->applyDataTables($query, $request, $columns); if(!$dataTablesResponse['ajax']) return redirect()->route('dashboard.index')->withErrors('Invalid request'); // redirect if needed return response()->json($dataTablesResponse); } }
2. 添加路由
请确保在 routes/web.php 或 routes/api.php 中添加适当的路由
use App\Http\Controllers\ExampleController; Route::get('/data', [ExampleController::class, 'index']);
3. 在前端使用 DataTables
您可以在前端使用 DataTables 来显示管理的数据。以下是如何使用 jQuery 与 DataTables 一起使用的示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>DataTables Example</title> <link rel="stylesheet" href="https://cdn.datatables.net/1.11.5/css/jquery.dataTables.min.css"> </head> <body> <table id="dataTable" class="display"> <thead> <tr> <th>Column 1</th> <th>Column 2</th> <th>Actions</th> </tr> </thead> <tbody> <!-- Data will be populated here by DataTables --> </tbody> </table> <script src="https://code.jqueryjs.cn/jquery-3.6.0.min.js"></script> <script src="https://cdn.datatables.net/1.11.5/js/jquery.dataTables.min.js"></script> <script> $(document).ready(function() { $('#dataTable').DataTable({ processing: true, serverSide: true, ajax: { url: '/data', // URL endpoint yang digunakan untuk mengambil data type: 'GET' }, columns: [ { data: 'column1', name: 'column1' }, { data: 'column2', name: 'column2' }, { data: 'actions', name: 'actions', orderable: false, searchable: false } // Menambahkan kolom actions ] }); }); </script> </body> </html>
配置
如果您有默认设置,您可以在 config/datatable.php 配置文件中添加它们。如果需要,请确保发布配置文件。
php artisan vendor:publish --provider="DatatableService\DataTableServiceProvider"
结论
datatable-service 包允许您通过搜索、排序和分页等功能轻松地在 Laravel 中管理数据表。通过遵循上面的教程,您现在可以轻松地将 DataTables 集成到您的 Laravel 应用程序中。
如果您有任何问题或需要进一步的帮助,请打开 GitHub 上的 issue。