timolake/livewire-tables
timolake/livewire-tables provides reusable Livewire components for building interactive, sortable, searchable data tables in Laravel. Create table views with pagination, filters, and column definitions, keeping server-side rendering with a reactive UI and minimal boilerplate.
setSearch(), setSort()). This reduces backend complexity while adding frontend interactivity without manual SQL or complex frontend logic.PaginationTrait), allowing teams to extend functionality (e.g., bulk actions, custom filters) without modifying core logic.Table class. For example:
// Before: Manual Livewire Component
public function mount() {
$this->users = User::paginate(10);
}
// After: Using livewire-tables
class UserTable extends LivewireTable {
public function configure() {
$this->setColumns(['id', 'name', 'email']);
$this->setSearch(['name', 'email']);
}
public function query() {
return User::query();
}
}
cursor() pagination).shouldDehydrate() or lazy-loading for large datasets.livewire-powergrid, livewire-datatables)?cursor() pagination)?yajra/laravel-datatables, livewire-datatables, or custom Livewire components)?Table class interfaces)?N+1 queries in search)?// Before
public function mount() {
$this->users = User::paginate(10);
}
// After
class UserTable extends LivewireTable {
public function configure() {
$this->setColumns(['id', 'name', 'email']);
}
public function query() {
return User::query();
}
}
UserTable with searchable/sortable fields:
public function configure() {
$this->setColumns(['id', 'name', 'email']);
$this->setSearch(['name', 'email']);
$this->setSortable(['name', 'email']);
}
@livewire:
@livewire('user-table', ['table' => \App\Tables\UserTable::class])
How can I help you explore Laravel packages today?