- Creating Columns
- Relationships
- Available Methods
- Other Column Types
- Column Selection
- Secondary Header
- Footer
- Reusable Columns
- Anonymous Columns
- Styling
- Standard Column
- Array Columns (beta)
- Avg Columns (beta)
- Boolean Columns
- Button Group Columns
- Color Columns
- Component Columns
- Count Columns (beta)
- Date Columns
- Icon Columns (beta)
- Image Columns
- Link Columns
- Livewire Component (beta)
- Sum Columns (beta)
- View Component Columns
- Wire Link Column (beta)
- Introduction
- Boolean Filters (beta)
- Date Filters
- DateRange Filters
- DateTime Filters
- Multi-Select Dropdown Filters
- Multi-Select Filters
- NumberRange Filters
- Number Filters
- Select Filters
- Text Filters
- Livewire Custom Filter (Beta)
- Refreshing
- Loading Placeholder
- Multiple Tables Same Page
- Actions (beta)
- Adding Custom Markup
- Debugging
- Saving Table State
- Lifecycle Hooks
- Hiding The Table (beta)
- One Of Many Example
- Tools
Getting Started
Usage
DataTable
Columns
Column Types
Rows
Sorting
Pagination
Search
Bulk Actions
Filters
Filter Types
Reordering
Secondary Header
Footer
Examples
Misc.
Sponsored
Advanced Usage
Examples
🎉 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 on the left/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 DataTableComponent10{11 protected $model = User::class;12 13 public function configure(): void14 {15 $this->setPrimaryKey('id');16 }17 18 public function columns(): array19 {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(): void2{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(): void2{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 DataTableComponent10{11 protected $model = User::class;12 13 public function configure(): void14 {15 $this->setPrimaryKey('id')16 ->setLayout('path-to-layout')17 ->setSlot('slot-name-here');18 }19 20 public function columns(): array21 {22 return [23 Column::make('ID', 'id')24 ->sortable(),25 Column::make('Name')26 ->sortable(),27 ];28 }29}