Version

Theme

Table Builder - Columns

Select column

Overview

The select column allows you to render a select field inside the table, which can be used to update that database record without needing to open a new page or a modal.

You must pass options to the column:

use Filament\Tables\Columns\SelectColumn;
 
SelectColumn::make('status')
->options([
'draft' => 'Draft',
'reviewing' => 'Reviewing',
'published' => 'Published',
])
Select column

Validation

You can validate the input by passing any Laravel validation rules in an array:

use Filament\Tables\Columns\SelectColumn;
 
SelectColumn::make('status')
->options([
'draft' => 'Draft',
'reviewing' => 'Reviewing',
'published' => 'Published',
])
->rules(['required'])

Disabling placeholder selection

You can prevent the placeholder from being selected using the selectablePlaceholder() method:

use Filament\Tables\Columns\SelectColumn;
 
SelectColumn::make('status')
->options([
'draft' => 'Draft',
'reviewing' => 'Reviewing',
'published' => 'Published',
])
->selectablePlaceholder(false)

Lifecycle hooks

Hooks may be used to execute code at various points within the select's lifecycle:

SelectColumn::make()
->beforeStateUpdated(function ($record, $state) {
// Runs before the state is saved to the database.
})
->afterStateUpdated(function ($record, $state) {
// Runs after the state is saved to the database.
})
Edit on GitHub

Still need help? Join our Discord community or open a GitHub discussion