- 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
- Increment Column (beta)
- Link Columns
- Livewire Component (beta)
- Sum Columns (beta)
- View Component Columns
- Wire Link Column (beta)
- Introduction
- Creating Filters
- Applying Filters
- Available Methods
- Available Component Methods
- Available Filter Methods
- 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
The Query
By default, the package will join any relationship tables it can, it will also eager-load any relationships if you chain the eagerLoadRelations()
method on the column or call the setEagerLoadAllRelationsEnabled()
method on the component configuration.
This package only currently supports Eloquent models. You have two ways of hooking up your model.
Note: You can try calebporzio/sushi for arrays.
Using the model property
If you would like to create a simple table and know that you won't need to join any extra tables or use any aliases, then you can just use the model property:
1protected $model = User::class;
This just calls the query method on the model for you.
Using the builder method
If you want more control over the query you may implement the builder
method:
1public function builder(): Builder2{3 return User::query()4 ->with() // Eager load anything5 ->join() // Join some tables6 ->select(); // Select some things7}
Your component must implement one of these methods or an exception will be thrown.