I'm currently available for full time hire! Inquire Here

Laravel Livewire Tables Documentation

🎉 Enjoying this package? Consider sponsoring me on GitHub or buying me a beer.

This is the documentation for v3. You can switch versions in the menu at the top. Check your current version with the following command:

composer show rappasoft/laravel-livewire-tables

Creating Components

In-Line Component

You can create components by using the command or copying from one of the examples.

This is what a bare bones component looks like before your customization:

1<?php
2 
3namespace App\Livewire;
4 
5use App\Models\User;
6use Rappasoft\LaravelLivewireTables\DataTableComponent;
7use Rappasoft\LaravelLivewireTables\Views\Column;
8 
9class UsersTable extends DataTableComponent
10{
11 protected $model = User::class;
12 
13 public function configure(): void
14 {
15 $this->setPrimaryKey('id');
16 }
17 
18 public function columns(): array
19 {
20 return [
21 Column::make('ID', 'id')
22 ->sortable(),
23 Column::make('Name')
24 ->sortable(),
25 ];
26 }
27}

Your component will extend the Rappasoft\LaravelLivewireTables\DataTableComponent class and at minimum implement 2 methods called configure and columns.

Full Page Component

To use a Table as a Full Page Component, there are a few options that you must set in your configure() method.

setLayout

To use a Custom Layout (as a Full Page Component), use the setLayout() method, which expects to be passed a string which is the path to the layout.

1public function configure(): void
2{
3 $this->setLayout('path-to-layout');
4}

setSlot

To use a Custom Slot (as a Full Page Component), use setSlot() method, which expects to be passed a string which is the name of the slot.

1public function configure(): void
2{
3 $this->setSlot('slot-name-here');
4}

setSection

To use a Custom Section (as a Full Page Component), use setSection() method, which expects to be passed a string which is the name of the section.

Full Page Component Example

1<?php
2 
3namespace App\Livewire;
4 
5use App\Models\User;
6use Rappasoft\LaravelLivewireTables\DataTableComponent;
7use Rappasoft\LaravelLivewireTables\Views\Column;
8 
9class UsersTable extends DataTableComponent
10{
11 protected $model = User::class;
12 
13 public function configure(): void
14 {
15 $this->setPrimaryKey('id')
16 ->setLayout('path-to-layout')
17 ->setSlot('slot-name-here');
18 }
19 
20 public function columns(): array
21 {
22 return [
23 Column::make('ID', 'id')
24 ->sortable(),
25 Column::make('Name')
26 ->sortable(),
27 ];
28 }
29}