Action Buttons - Datatables for Laravel                  [               Datatables for Laravel  ](/) [ 1.0.5](https://laravel-datatables.com/release-notes "Click to view release notes")

  Toggle main menu         [Docs](https://laravel-datatables.com/docs) [Demos](/demos) [Blog](https://laravel-datatables.com/blog) [Pricing](/pricing)        Search  ⌘ K   [ Log in ](/login) 

  [Docs](https://laravel-datatables.com/docs) [Demos](/demos) [Blog](https://laravel-datatables.com/blog) [Pricing](/pricing) 

 Search docs and demos  

Type at least 2 characters to search.

    Docs     

### Getting Started

- [ Installation ](https://laravel-datatables.com/docs/start-installation)
- [ Manual Installation ](https://laravel-datatables.com/docs/start-manual-installation)
- [ Dark Mode ](https://laravel-datatables.com/docs/start-dark-mode)

### Basics

- [ Creating a Table ](https://laravel-datatables.com/docs/basic-creating-a-table)
- [ Displaying Columns ](https://laravel-datatables.com/docs/basic-displaying-columns)
- [ Data Sources ](https://laravel-datatables.com/docs/basic-data-sources)
- [ Internationalisation ](https://laravel-datatables.com/docs/basic-internationalisation)
- [ Styling ](https://laravel-datatables.com/docs/basic-styling)

### Features

- [ Accessibility ](https://laravel-datatables.com/docs/feature-accessibility)
- [ Aggregate Columns ](https://laravel-datatables.com/docs/feature-aggregate-columns)
- [ Bulk Actions ](https://laravel-datatables.com/docs/feature-bulk-actions)
- [ Column Reordering ](https://laravel-datatables.com/docs/feature-column-reordering)
- [ Column Visibility ](https://laravel-datatables.com/docs/feature-column-visibility)
- [ Custom Controls ](https://laravel-datatables.com/docs/feature-custom-controls)
- [ Custom Filters ](https://laravel-datatables.com/docs/feature-custom-filters)
- [ Exporting ](https://laravel-datatables.com/docs/feature-exporting)
- [ Freeze Columns and Headers ](https://laravel-datatables.com/docs/feature-freeze-columns-and-headers)
- [ Inline Editing ](https://laravel-datatables.com/docs/feature-inline-editing)
- [ Pagination ](https://laravel-datatables.com/docs/feature-pagination)
- [ Responsive Mobile ](https://laravel-datatables.com/docs/feature-responsive-mobile)
- [ Row Actions ](https://laravel-datatables.com/docs/feature-row-actions)
- [ Row Grouping ](https://laravel-datatables.com/docs/feature-row-grouping)
- [ Row Selection ](https://laravel-datatables.com/docs/feature-row-selection)
- [ Sorting and Searching ](https://laravel-datatables.com/docs/feature-sorting-and-searching)
- [ State Persistence ](https://laravel-datatables.com/docs/feature-state-persistence)
- [ Value Preparation ](https://laravel-datatables.com/docs/feature-value-preparation)

### Customization

- [ Cell Renderer ](https://laravel-datatables.com/docs/customization-cell-renderer)
- [ Columns ](https://laravel-datatables.com/docs/customization-columns)
- [ Components ](https://laravel-datatables.com/docs/customization-components)
- [ Data Sources ](https://laravel-datatables.com/docs/customization-data-sources)
- [ Exporting ](https://laravel-datatables.com/docs/customization-exporting)
- [ Filters ](https://laravel-datatables.com/docs/customization-filters)
- [ Loading Indicator ](https://laravel-datatables.com/docs/customization-loading-indicator)
- [ Multi Row Actions ](https://laravel-datatables.com/docs/customization-multi-row-actions)
- [ Pagination ](https://laravel-datatables.com/docs/customization-pagination)
- [ Row Actions ](https://laravel-datatables.com/docs/customization-row-actions)
- [ Sorting Icons ](https://laravel-datatables.com/docs/customization-sorting-icons)
- [ State Persistence ](https://laravel-datatables.com/docs/customization-state-persistence)
- [ Value Formatter ](https://laravel-datatables.com/docs/customization-value-formatter)

### Cell Renderer

- [ Action Buttons ](https://laravel-datatables.com/docs/renderer-action-buttons)
- [ Avatar ](https://laravel-datatables.com/docs/renderer-avatar)
- [ Checkmark ](https://laravel-datatables.com/docs/renderer-checkmark)
- [ Color Sample ](https://laravel-datatables.com/docs/renderer-color-sample)
- [ Email Link ](https://laravel-datatables.com/docs/renderer-email-to-link)
- [ External Link ](https://laravel-datatables.com/docs/renderer-external-link)
- [ Friendly Timestamp ](https://laravel-datatables.com/docs/renderer-friendly-timestamp)
- [ Image ](https://laravel-datatables.com/docs/renderer-image)
- [ Long Text ](https://laravel-datatables.com/docs/renderer-long-text)
- [ Phone Link ](https://laravel-datatables.com/docs/renderer-phone-link)
- [ Progress Bar ](https://laravel-datatables.com/docs/renderer-progress-bar)
- [ Status Badge ](https://laravel-datatables.com/docs/renderer-status-badge)
- [ URL Link ](https://laravel-datatables.com/docs/renderer-url-link)
- [ Wire Link ](https://laravel-datatables.com/docs/renderer-wire-link)

### Value Formatter

- [ Compact Number ](https://laravel-datatables.com/docs/formatter-compact-number)
- [ Currency ](https://laravel-datatables.com/docs/formatter-currency)
- [ Duration ](https://laravel-datatables.com/docs/formatter-duration)
- [ Friendly Filesize ](https://laravel-datatables.com/docs/formatter-friendly-filesize)
- [ Friendly Timestamp ](https://laravel-datatables.com/docs/formatter-friendly-timestamp)
- [ Locale Timestamp ](https://laravel-datatables.com/docs/formatter-locale-timestamp)
- [ Number ](https://laravel-datatables.com/docs/formatter-number)
- [ Percent ](https://laravel-datatables.com/docs/formatter-percent)

Action Buttons
==============

ActionButtons renders row-level actions such as view, edit, delete, restore, or custom commands.

Basic Renderer Usage
--------------------

Attach ActionButtons to an actions column and handle events with handleRowAction().

columns() example

PHP

     `public function columns(): array{    return [        Column::make('actions', Actions'))            ->renderer(new \MorrowIt\LaravelDatatable\Renderers\ActionButtons()),    ];}protected function handleRowAction(string $rowId, string $action): void{    // Handle action value from button click}` 

```
public function columns(): array
{
    return [
        Column::make('actions', Actions'))
            ->renderer(new \MorrowIt\LaravelDatatable\Renderers\ActionButtons()),
    ];
}

protected function handleRowAction(string $rowId, string $action): void
{
    // Handle action value from button click
}
```

Visual Variant and Labels
-------------------------

Control visual style and label text with constructor options.

Variant + labels

PHP

     `Column::make('actions', Actions'))->renderer(    new \MorrowIt\LaravelDatatable\Renderers\ActionButtons(        variant: 'icon', // button | text | icon | verbal(alias)        viewLabel: Open'),        editLabel: Edit'),        deleteLabel: Remove')    ));` 

```
Column::make('actions', Actions'))->renderer(
    new \MorrowIt\LaravelDatatable\Renderers\ActionButtons(
        variant: 'icon', // button | text | icon | verbal(alias)
        viewLabel: Open'),
        editLabel: Edit'),
        deleteLabel: Remove')
    )
);
```

Dynamic Actions and Icons
-------------------------

Use actions or actionsResolver to generate per-row action sets, and iconOverrides to customize icons by action key.

Note, that when providing custom actions that include an icon property, it will be rendered unless the variant is set to icon. You can control the alignment by setting the icon-align key in the args attribute (which defaults to left).

Dynamic actions

PHP

     `Column::make('actions', Actions'))->renderer(    new \MorrowIt\LaravelDatatable\Renderers\ActionButtons(        actionsResolver: fn (array $row) => ($row['deleted_at'] ?? null)            ? ['restore']            : ['view', 'edit', 'delete'],        iconOverrides: [            'restore' => '',        ]    ));` 

```
Column::make('actions', Actions'))->renderer(
    new \MorrowIt\LaravelDatatable\Renderers\ActionButtons(
        actionsResolver: fn (array $row) => ($row['deleted_at'] ?? null)
            ? ['restore']
            : ['view', 'edit', 'delete'],
        iconOverrides: [
            'restore' => '',
        ]
    )
);
```

Options
-------

   Option Values Default     variant button, text, icon, verbal verbal   actions Array of action keys Default action set   actionsResolver Closure that returns actions per row null   iconOverrides Map of action key to SVG/HTML icon \[\]   viewLabel, editLabel, deleteLabel Any string View/Edit/Delete   

Styling
-------

The Datatables for Laravel package comes with pre-defined styling for the different variant types that can be found in your projects resource/css/laravel-datatable/&lt;theme&gt;/renderer folder after publishing the package styles (see [ Styling ](https://laravel-datatables.com/docs/basic-styling)) or simply following the styling guides in the [ Styling ](https://laravel-datatables.com/docs/basic-styling) Documentation page.

Note that the provided style definitions are separated into individual css files per cell renderer. This allows for more granular control over the styling of each renderer type, making it easier to customize the appearance of specific components without affecting others. You may choose to follow the same standard or simply override them in your own css file.

### Related Documentation

 [Row Actions

Features

Handle row actions for your table.](https://laravel-datatables.com/docs/feature-row-actions) [Row Actions

Customization

Customize and handle row actions.](https://laravel-datatables.com/docs/customization-row-actions) [Cell Renderer

Customization

Create your own cell renderer classes.](https://laravel-datatables.com/docs/customization-cell-renderer) 

### Related Demos

 [Action Buttons

Cell Renderer

Render action buttons within table cells.](https://laravel-datatables.com/demos/cell-renderer-action-buttons) 

   © 2026 Copyright (C)  [ Morrow IT Consulting &amp; Services ](https://morrow-it.services)  

 [Terms of Service](https://laravel-datatables.com/legal/terms) [Privacy](https://laravel-datatables.com/legal/privacy) [Legal Disclosure](https://laravel-datatables.com/legal/disclosure)
