nion/laravel-model-datatable

A Laravel package for generating dynamic data tables using Blade components.

1.0.2 2025-03-15 06:17 UTC

This package is auto-updated.

Last update: 2025-07-23 06:42:26 UTC


README

A simple and powerful package for handling datatables in Laravel applications.

Installation

You can install the package via composer:

composer require nion/model-datatable

The package will automatically register its service provider.

Usage

1. Publish the configuration (optional)

php artisan vendor:publish --provider="Nion\ModelDatatable\Providers\ModelDataTableServiceProvider" --tag="config"

2. Add the trait to your model

use Nion\ModelDatatable\Traits\HasDataTable;

class User extends Model
{
    use HasDataTable;
    
    // Define your columns
    protected $datatableColumns = [
        'id' => 'ID',
        'name' => 'Name',
        'email' => 'Email',
        'created_at' => 'Created At'
    ];
}

3. In your controller

public function index()
{
    $users = User::datatable();
    
    if (request()->ajax()) {
        return $users;
    }
    
    return view('users.index', compact('users'));
}

4. In your blade view

<table id="users-table">
    <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</th>
            <th>Created At</th>
        </tr>
    </thead>
</table>

@push('scripts')
<script>
$(document).ready(function() {
    $('#users-table').DataTable({
        processing: true,
        serverSide: true,
        ajax: "{{ route('users.index') }}",
        columns: [
            {data: 'id', name: 'id'},
            {data: 'name'},
            {data: 'email'},
            {data: 'created_at'}
        ]
    });
});
</script>
@endpush

Features

  • Server-side processing
  • Automatic column handling
  • Search functionality
  • Sorting functionality
  • Pagination
  • Custom column formatting
  • Relationship handling

Configuration

You can customize the package behavior by publishing the config file:

// config/model-datatable.php
return [
    'default_per_page' => 15,
    'search_columns' => ['name', 'email'],
    'date_format' => 'Y-m-d H:i:s',
];

License

The MIT License (MIT). Please see License File for more information.

Laravel Model DataTable

Latest Version Total Downloads License

Laravel Model DataTable makes it easy to generate dynamic data tables directly from Eloquent models in Blade templates.

Supports:

  • Bootstrap, Tailwind, or Custom Views
  • Automatic table rendering from models
  • Customizable and extendable UI

🚀 Installation

You can install the package via Composer:

composer require nion/laravel-model-datatable