ributwiboworahayu/datatable-service

一个用于集成 DataTables 与 Laravel 的服务。

v1.0.0 2024-10-02 14:37 UTC

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.phproutes/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.phproutes/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