Skip to main content

Introduction

The select column allows you to render a select field inside the table for inline editing:

Select type

By default, Filament uses the native HTML5 select. Enable a JavaScript select:
bool | Closure
default:"true"
Whether to use the native select.

Searchable options

Enable searching through options:
bool | array | Closure
default:"true"
Whether options are searchable. Pass an array of column names to search specific columns.

Custom search results

Provide custom search results for large datasets:
Closure
A closure that returns search results as a $key => $value array.

Search messages

Customize the search experience:

Search debounce

Customize the search delay:
int | Closure
default:"1000"
The debounce time in milliseconds.

Relationship integration

Integrate with Eloquent relationships:
string | Closure
required
The relationship name.
string | Closure
The column to use for option labels.
Closure
A closure to modify the relationship query.

Searching relationships

Search across multiple columns:

Preloading options

Load options immediately instead of on search:
bool | Closure
default:"true"
Whether to preload all options.

Custom relationship query

Modify the relationship query:

Custom option labels

Customize option labels from records:

Remembering options

By default, options are cached per page. Disable for record-specific options:
bool | Closure
default:"true"
Whether to remember options.

HTML in option labels

Allow HTML in option labels:
Ensure HTML is safe to prevent XSS attacks.
bool | Closure
default:"false"
Whether to allow HTML in option labels.

Wrapping option labels

Control label wrapping in the JavaScript select:
bool | Closure
default:"true"
Whether to wrap option labels.

Placeholder selection

Disable null option selection:
bool | Closure
default:"true"
Whether the placeholder can be selected.

Disabling options

Disable specific options:
Closure
required
A closure that returns whether an option should be disabled.

Options limit

Limit displayed options:
int | Closure
default:"50"
The maximum number of options to display.

Validation

Add validation rules:

Lifecycle hooks

Execute code before and after updates: