Skip to main content
← Back to Table of Contents

Summary

Rich user picker extending SelectField with a design optimized for user selection. Features avatars, names, emails, and verified badges in both the dropdown and trigger. Supports single selection with a rich trigger and multiple selection with removable avatar tags. For read-only user display in tables, use UserColumn instead.

Basic usage

Multi-Select Relationship


State & validation

Stored value

State is a scalar ID (single) or an array of IDs (multiple). Values must match model primary keys when using optionModel() or relationship().

Validation rules

Inherits standard Filament Select validation. Option keys must exist in search results or static options().

Configuration API

All methods accept Closure unless noted.

FlexFieldFormBuilder / Studio config

UserSelectFieldConfigurator reuses Select Studio keys (searchable, multiple, native, clearable, variant, options, …) then applies user-specific keys: Async search and relationship() remain PHP-only (same boundary as SelectField).

Real-world examples

Custom Avatar Integration

Static Rich Options


Playground

/admin/flex-fields-playground/user-select See Playground for setup.

Ops notes

UserSelect inherits Select Livewire search rate limiting (filament-flex-fields.select.search_rate_limit_per_minute). Keys use the authenticated user id or Request::ip() — configure Laravel TrustedProxies behind a reverse proxy. Headless overlay teardown: Alpine destroy() cancels in-flight search and releases teleported menus; Livewire morph.updating also runs emergency overlay cleanup when a field node is removed (modal / slide-over close).

CSS classes (reference)