定制 alp-develop/laravel-livewire-tables 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

alp-develop/laravel-livewire-tables

Composer 安装命令:

composer require alp-develop/laravel-livewire-tables

包简介

Full-featured reactive data tables for Laravel 10-13 and Livewire 3-4. Search, sort, filter, paginate, bulk actions, CSV export, dark mode, Tailwind & Bootstrap themes.

README 文档

README

Laravel Livewire Tables

Tests Latest Stable Version License

Full-featured, reactive data tables for Laravel. Search, sort, filter, paginate, export, bulk actions — zero JavaScript.

Laravel 10–13 | Livewire 3–4 | PHP 8.1–8.5 | Tailwind / Bootstrap 5 / Bootstrap 4 | Dark mode

Install

1. Require the package

composer require alp-develop/laravel-livewire-tables

2. Publish and configure

php artisan vendor:publish --tag=livewire-tables-config

This creates config/livewire-tables.php. This step is required — the config defines the theme, colors, dark mode, and other essential settings.

3. Themes

Set the theme in config/livewire-tables.php:

'theme' => 'tailwind',
Theme Value Alias
Tailwind CSS tailwind
Bootstrap 5 bootstrap-5 bootstrap5, bootstrap
Bootstrap 4 bootstrap-4 bootstrap4

4. Tailwind only

Add to your CSS: [x-cloak] { display: none !important; }

Quick Start

php artisan make:livewiretable UsersTable User
<?php

namespace App\Livewire\Tables;

use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
use Livewire\Tables\Columns\TextColumn;
use Livewire\Tables\Columns\BooleanColumn;
use Livewire\Tables\Columns\ActionColumn;
use Livewire\Tables\Filters\SelectFilter;
use Livewire\Tables\Livewire\DataTableComponent;

class UsersTable extends DataTableComponent
{
    public function configure(): void
    {
        $this->setDefaultPerPage(25);
        $this->setSearchDebounce(300);
    }

    public function query(): Builder
    {
        return User::query();
    }

    public function columns(): array
    {
        return [
            TextColumn::make('name')->sortable()->searchable(),
            TextColumn::make('email')->sortable()->searchable(),
            BooleanColumn::make('active')->sortable(),
            TextColumn::make('created_at')
                ->label('Joined')->sortable()
                ->format(fn ($value) => $value?
                ->format('M d, Y')),
            ActionColumn::make()
                ->button('Edit', fn ($row) => "edit({$row->id})", 'lt-btn-primary')
                ->button('Delete', fn ($row) => "delete({$row->id})", 'lt-btn-primary'),
        ];
    }

    public function filters(): array
    {
        return [
            SelectFilter::make('active')
                ->label('Status')
                ->setOptions(['' => 'All', '1' => 'Active', '0' => 'Inactive'])
                ->filter(fn (Builder $q, $v) => $q->where('active', (bool) $v)),
        ];
    }

    public function bulkActions(): array
    {
        return [
            'deleteSelected' => 'Delete Selected',
            'exportCsvAuto'  => 'Export CSV',
        ];
    }

    public function deleteSelected(): void
    {
        User::whereIn('id', $this->getSelectedIds())->delete();
    }

    public function edit(int $id): void
    {
        $this->redirect(route('users.edit', $id));
    }

    public function delete(int $id): void
    {
        User::findOrFail($id)->delete();
    }
}
<livewire:tables.users-table />

Multiple Tables in the Same View

When rendering multiple instances of the same table component (or different tables that share the same class), assign a unique table-key to each one so their state (filters, search, sorting, pagination) is isolated:

<livewire:tables.users-table table-key="users-active" />
<livewire:tables.users-table table-key="users-archived" />

You can also pass it dynamically:

<livewire:tables.users-table :table-key="'users-' . $section" :table-theme="$theme" />

If you don't set table-key, all instances of the same component will share state via session.

Documentation

Guide
Installation Setup, config, publishing assets
Configuration Config reference, per-table options, table key
Columns Text, Boolean, Date, Image, Action, Blade
Filters All types, dependent filters, custom logic
Bulk Actions Selection model, custom actions, CSV export
Export Auto CSV, custom exports
Events & Hooks Lifecycle hooks, external refresh
Toolbar Slots 6 hook points for custom content
Theming Themes, dark mode, color palette
Dark Mode .lt-dark class, session detection, $this->darkMode
Joins Joined columns, aliases, search on joins
Security Built-in protections, safe callbacks

Development

composer test       # Run tests
composer analyse    # PHPStan level 8
composer format     # Pint code style

Contributing · Changelog · License

统计信息

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

GitHub 信息

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

其他信息

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

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固