- 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
One Of Many Example
When trying to retrieve "OneOfMany", you may experience duplicate records.
Core functionality for this will be added in due course, this is simply a work-around.
In the meantime, to avoid this, you can use the following approach.
This example assumes two Models: User -> HasMany -> Things
Models
User
id name created_at updated_at etc
1public function things(): \Illuminate\Database\Eloquent\Relations\HasMany2{3 return $this->hasMany(Things::class);4}
Things
id name user_id created_at updated_at
Table
The following is the table code for this example, and retrieves the most recently created "Thing"
Column
1Column::make('Latest Thing')2->label(3 fn ($row, Column $column) => $row->things->first()->name4),
Builder
1public function builder(): Builder {2 3 return User::query()->with(['things' => function ($query) {4 $query->select(['id','user_id','name'])->orderBy('created_at', 'desc')->limit(1);5 }]);6 7}
Core functionality for this will be added in due course, this is simply a work-around.