- 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
Actions (beta)
Actions is a beta feature, that allows for the creation of Action Buttons that appear above the toolbar. These are ideal for common Actions that do not impact existing records, such as a "Create", "Assign", "Back" buttons.
This is NOT recommended for production use at this point in time.
Component Available Methods
setActionWrapperAttributes
This is used to set attributes for the "div" that wraps all defined Action Buttons:
1public function configure(): void2{3 $this->setActionWrapperAttributes([4 'class' => 'space-x-4'5 ]);6}
setActionsInToolbarEnabled
Displays the Actions within the Toolbar. Default is displaying above the Toolbar.
1public function configure(): void2{3 $this->setActionsInToolbarEnabled();4}
setActionsInToolbarDisabled
Displays the Actions above the Toolbar, default behaviour
1public function configure(): void2{3 $this->setActionsInToolbarDisabled();4}
setActionsLeft
Displays the Actions justified to the left
1public function configure(): void2{3 $this->setActionsLeft();4}
setActionsCenter
Displays the Actions justified to the center
1public function configure(): void2{3 $this->setActionsCenter();4}
setActionsRight
Displays the Actions justified to the right
1public function configure(): void2{3 $this->setActionsRight();4}
actions()
Define your actions using the actions() method:
1public function actions(): array2{3 return [4 Action::make('View Dashboard')5 ->setRoute('dashboard'),6 ];7}
Button Available Methods
setLabelAttributes
Set custom attributes for an Action Label. At present it is recommended to only use this for "class" and "style" attributes to avoid conflicts.
By default, this replaces the default classes on the Action Label, if you would like to keep them, set the default flag to true.
1Action::make('Dashboard')2 ->setRoute('dashboard')3 ->wireNavigate()4 ->setLabelAttributes([5 'class' => 'text-xl',6 'default' => true,7 ]),
setActionAttributes
setActionAttributes is used to pass any attributes that you wish to implement on the "button" element for the action button. By default it will merge with the default classes.
You can set "default-styling" and "default-colors" to false to replace, rather than over-ride either default-styling or default-colors.
1public function actions(): array 2{ 3 return [ 4 Action::make('View Dashboard') 5 ->setActionAttributes([ 6 'class' => 'dark:bg-blue-500 dark:text-white dark:border-blue-600 dark:hover:border-blue-900 dark:hover:bg-blue-800', 7 'default-colors' => false, // Will over-ride the default colors 8 'default-styling' => true // Will use the default styling 9 ]),10 ];11}
setIcon
setIcon is used to set an icon for the action button
1public function actions(): array2{3 return [4 Action::make('Edit Item')5 ->setIcon("fas fa-edit"),6 ];7}
setIconAttributes
setIconAttributes is used to set any additional attributes for the Icon for the action button
1public function actions(): array2{3 return [4 Action::make('Edit Item')5 ->setIcon("fas fa-edit")6 ->setIconAttributes(['class' => 'font-4xl text-4xl']),7 ];8}
setIconLeft
setIconLeft is used to prepend the Icon to the Text (Non-Default Behaviour)
1public function actions(): array2{3 return [4 Action::make('Edit Item')5 ->setIcon("fas fa-edit")6 ->setIconAttributes(['class' => 'font-4xl text-4xl'])7 ->setIconLeft(),8 ];9}
setIconRight
setIconRight is used to append the Icon to the Text (Default Behaviour)
1public function actions(): array2{3 return [4 Action::make('Edit Item')5 ->setIcon("fas fa-edit")6 ->setIconAttributes(['class' => 'font-4xl text-4xl'])7 ->setIconRight(),8 ];9}
setRoute
Used for non-wireable butons, to set the route that the action button should take the user to upon clicking.
1public function actions(): array2{3 return [4 Action::make('Dashboard')5 ->setRoute('dashboard')6 ];7}
wireNavigate
Used in conjunction with setRoute - makes the link "wire:navigate" rather than default behaviour
1public function actions(): array2{3 return [4 Action::make('Dashboard')5 ->setRoute('dashboard')6 ->wireNavigate()7 ];8}
setWireAction
1public function actions(): array2{3 return [4 Action::make('Create 2')5 ->setWireAction("wire:click")6 ];7}
setWireActionParams
Specify the action & parameters to pass to the wire:click method
1public function actions(): array2{3 return [4 Action::make('Create 2')5 ->setWireAction("wire:click")6 ->setWireActionParams(['id' => 'test']),7 ];8}
setWireActionDispatchParams
Use $dispatch rather than a typical wire:click action
1public function actions(): array2{3 return [4 Action::make('Create 2')5 ->setWireAction("wire:click")6 ->setWireActionDispatchParams("'openModal', { component: 'test-modal' }"),7 ];8}
setView
This is used to set a Custom View for the Button
1public function actions(): array2{3 return [4 Action::make('Edit Item')5 ->setView("buttons.edit"),6 ];7}
Extending
You can extend the Base Action class which can be a useful timesaver, when you wish to re-use the same look/feel of an Action, but wish to set a different route (for example). You can set any defaults in the __construct method, ensuring that the parent constructor is called first!
1use Rappasoft\LaravelLivewireTables\Views\Action; 2 3class EditAction extends Action 4{ 5 public function __construct(?string $label = null) 6 { 7 parent::__construct($label); 8 $this 9 ->setActionAttributes([10 'class' => 'dark:bg-blue-500 dark:text-white dark:border-blue-600 dark:hover:border-blue-900 dark:hover:bg-blue-800',11 'default-colors' => false,12 'default-styling' => true13 ])14 ->setIcon("fas fa-edit")15 ->setIconAttributes([16 'class' => 'font-4xl text-4xl'17 ]);18 }19}
You may define a Custom View to be used via either the setView method, or by defining the view directly in your class.
1protected string $view = 'buttons.edit-action';