caydeesoft/datatable-generator 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

caydeesoft/datatable-generator

Composer 安装命令:

composer require caydeesoft/datatable-generator

包简介

A Laravel package for generating server-side DataTables classes

README 文档

README

A powerful and extensible DataTable scaffolding package for Laravel.

Generate server-side DataTables, Blade views, controllers, requests, policies, API resources, and complete admin stacks using Artisan commands.

Built for scalable Laravel applications.

Features

  • Generate server-side DataTables
  • Generate Blade DataTable views
  • Generate full DataTable stacks
  • Searchable columns
  • Server-side pagination
  • Ordering support
  • Stub publishing support
  • Extensible architecture
  • Laravel package auto-discovery
  • Laravel 11 & 12 support
  • PHP 8.2+ support

Installation

Install the package via Composer:

composer require caydeesoft/datatable-generator

Package Auto Discovery

The package supports Laravel auto-discovery.

No manual provider registration required.

Publish Stubs

Publish all package stubs:

php artisan vendor:publish --tag=datatable-stubs

Published stubs:

stubs/
├── datatable.stub
└── datatable-view.stub

You can fully customize generated files by editing these stubs.

Commands

Generate DataTable

php artisan make:datatable UserDataTable User

With Search Columns

php artisan make:datatable UserDataTable User \
    --search=name \
    --search=email \
    --search=phone

Generate DataTable View

php artisan make:datatable-view backend/users/index \
    --route=backend.user.datatable \
    --table=user-table \
    --columns=id \
    --columns=name \
    --columns=email \
    --columns=status \
    --columns=action

Generate Full DataTable Stack

php artisan make:datatable-stack User \
    --columns=id \
    --columns=name \
    --columns=email \
    --columns=status \
    --columns=action \
    --search=name \
    --search=email \
    --controller \
    --request \
    --policy \
    --api

Generated Structure

DataTable Generator

app/Http/Datatables/UserDataTable.php

View Generator

resources/views/backend/users/index.blade.php

Stack Generator

app/
├── Http/
│   ├── Controllers/
│   │   └── UserController.php
│   │
│   ├── Datatables/
│   │   └── UserDataTable.php
│   │
│   ├── Requests/
│   │   └── UserRequest.php
│   │
│   └── Resources/
│       └── UserResource.php
│
├── Policies/
│   └── UserPolicy.php

resources/
└── views/
    └── backend/
        └── users/
            └── index.blade.php

Example Generated DataTable

<?php

namespace App\Http\Datatables;

use App\Models\User;

class UserDataTable
{
    public array $columns = [
        'id',
        'name',
        'email',
    ];

    public function data($request): array
    {
        $query = User::query();

        if ($search = $request->input('search.value'))
        {
            $query->where('name', 'LIKE', "%{$search}%")
                  ->orWhere('email', 'LIKE', "%{$search}%");
        }

        return [
            'data' => $query->get(),
        ];
    }
}

Example Generated View

@extends('layouts.backend')

@section('content')

<table id="user-table" class="table table-bordered">
    <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</th>
            <th>Status</th>
            <th>Action</th>
        </tr>
    </thead>
</table>

@endsection

@section('footer')

<script type="application/javascript">
document.addEventListener('DOMContentLoaded', function ()
{
    new window.DataTable('#user-table',
    {
        processing: true,
        serverSide: true,

        ajax:
        {
            url: "{{ route('backend.user.datatable') }}",
            type: "POST",

            data:
            {
                _token: "{{ csrf_token() }}"
            }
        },

        columns:
        [
            {"data": "id"},
            {"data": "name"},
            {"data": "email"},
            {"data": "status"},
            {"data": "action"}
        ]
    });
});
</script>

@endsection

Available Commands

Command Description
make:datatable Generate DataTable class
make:datatable-view Generate Blade DataTable view
make:datatable-stack Generate full DataTable stack

Command Options

make:datatable

Option Description
--search=* Searchable columns

make:datatable-view

Option Description
--columns=* Table columns
--route= AJAX route
--table= HTML table ID

make:datatable-stack

Option Description
--columns=* Table columns
--search=* Searchable columns
--controller Generate controller
--request Generate request
--policy Generate policy
--api Generate API resource

Supported Versions

Laravel

Version Supported
11.x
12.x

PHP

Version Supported
8.2
8.3
8.4

Stub Customization

All generated files are powered by stubs.

Publish stubs:

php artisan vendor:publish --tag=datatable-stubs

Modify:

stubs/datatable.stub
stubs/datatable-view.stub

to customize generated output.

Recommended DataTables Library

This package works perfectly with:

  • DataTables.net
  • Bootstrap DataTables
  • Server-side Laravel DataTables

Official site:

https://datatables.net/

Testing

Run tests:

composer test

Code Formatting

Run Laravel Pint:

composer format

Package Structure

datatable-generator/
├── src/
│   ├── Commands/
│   ├── Providers/
│   └── Support/
│
├── stubs/
│   ├── datatable.stub
│   └── datatable-view.stub
│
├── tests/
├── composer.json
├── README.md
└── LICENSE

Future Features

Planned features include:

  • Dynamic schema detection
  • Relationship searching
  • Export support (CSV/XLSX/PDF)
  • Filters
  • Column permissions
  • Bulk actions
  • Query pipelines
  • Vue integration
  • React integration
  • Livewire integration
  • API DataTables
  • Multi-tenant support
  • Admin module scaffolding
  • Yajra DataTables integration

Roadmap

Future commands:

php artisan make:admin-module
php artisan make:datatable-filter
php artisan make:datatable-export
php artisan make:datatable-column

Contributing

Contributions are welcome.

Steps

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

Security

If you discover any security vulnerabilities, please email:

dennis.kiptoo@caydeesoft.com

License

This package is open-sourced software licensed under the MIT license.

Author

Dennis Kiptugen

Links

GitHub Repository

https://github.com/caydeesoft/datatable-generator

Packagist

https://packagist.org/packages/caydeesoft/datatable-generator

caydeesoft/datatable-generator 适用场景与选型建议

caydeesoft/datatable-generator 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 24 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 05 月 11 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「generator」 「laravel」 「datatables」 「datatable」 「serverside」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 caydeesoft/datatable-generator 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 caydeesoft/datatable-generator 我们能提供哪些服务?
定制开发 / 二次开发

基于 caydeesoft/datatable-generator 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 24
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 47
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-05-11