alp-develop/laravel-livewire-tables
Reactive Livewire data tables for Laravel—search, sort, filter, paginate, export, and bulk actions with zero JavaScript. Supports Laravel 10–13, Livewire 3–4, PHP 8.1+, Tailwind or Bootstrap 4/5, plus dark mode and configurable themes.
Pros:
resolveFilters(), FilterStep/SortStep maps, column caching). Mitigates latency in large datasets or complex queries.#[Locked] attributes prevent client-side state tampering.setEagerLoad()) for Eloquent relations.Cons:
livewire-tables.php may bloat large apps with diverse table needs (e.g., per-table styling/behavior).Engine), deep customization (e.g., integrating AG Grid) still requires manual overrides.Laravel Ecosystem Compatibility:
setEagerLoad() simplifies relation handling. Assumes standard Laravel queries (e.g., paginate(), where()), but complex raw SQL may still require adjustments.#[Locked] attributes, protected getEngine()). Test thoroughly.Security Considerations:
Performance Tradeoffs:
setEagerLoad() prevents N+1 queries but may bloat initial queries for tables with many relations.Medium-High Risk:
#[Locked] attributes, protected methods). Mitigation: Pin Livewire version in composer.json.memory_get_usage().#[Locked] attributes prevent client-side tampering but may complicate debugging (e.g., Livewire’s state persistence).New Risks:
final from Engine enables custom pipelines but risks incompatible overrides if not documented.Use Case Alignment:
#[Locked] and protected method impacts.Customization Needs:
Engine but validate against the new test suite.Performance:
setEagerLoad() helps but may require query tuning.Maintenance:
#[Locked] state may need training.Alternatives:
spatie/laravel-data-tables (more flexible but less opinionated) or yajra/laravel-datatables (client-side heavy).Best Fit For:
Less Ideal For:
Assessment Phase:
Pilot Implementation:
Incremental Rollout:
setEagerLoad() for tables with relations.#[Locked] attributes) incrementally.livewire-tables.php config (e.g., default theme, dark mode, perPageOptions).Security Hardening:
#[Locked] attributes, input sanitization, and TOCTOU protection are active.=cmd|' /C calc').How can I help you explore Laravel packages today?