Skip to main content
You are currently viewing the documentation for Filament 4.x, which is a previous version of Filament.Looking for the current stable version? Visit the 5.x documentation.

Introduction

Filament includes an action that is able to view Eloquent records. When the trigger button is clicked, a modal will open with information inside. Filament uses form fields to structure this information. All form fields are disabled, so they are not editable by the user. You may use it like so:
use Filament\Actions\ViewAction;
use Filament\Forms\Components\TextInput;

ViewAction::make()
    ->schema([
        TextInput::make('title')
            ->required()
            ->maxLength(255),
        // ...
    ])

Customizing data before filling the form

You may wish to modify the data from a record before it is filled into the form. To do this, you may use the mutateRecordDataUsing() method to modify the $data array, and return the modified version before it is filled into the form:
use Filament\Actions\ViewAction;

ViewAction::make()
    ->mutateRecordDataUsing(function (array $data): array {
        $data['user_id'] = auth()->id();

        return $data;
    })
As well as $data, the mutateRecordDataUsing() function can inject various utilities as parameters.
Learn more about utility injection.
Action
$action
Filament\Actions\Action
The current action instance.
Arguments
$arguments
array<string, mixed>
The array of arguments passed to the action when it was triggered.
Data
$data
array<string, mixed>
The array of data submitted from form fields in the action's modal. It will be empty before the modal form is submitted.
Livewire
$livewire
Livewire\Component
The Livewire component instance.
Eloquent model FQN
$model
?string<Illuminate\Database\Eloquent\Model>
The Eloquent model FQN for the current action, if one is attached.
Mounted actions
$mountedActions
array<Filament\Actions\Action>
The array of actions that are currently mounted in the Livewire component. This is useful for accessing data from parent actions.
Eloquent record
$record
?Illuminate\Database\Eloquent\Model
The Eloquent record for the current action, if one is attached.
Schema
$schema
Filament\Schemas\Schema
[Actions in schemas only] The schema object that this action belongs to.
Schema component
$schemaComponent
Filament\Schemas\Components\Component
[Actions in schemas only] The schema component that this action belongs to.
Schema component state
$schemaComponentState
mixed
[Actions in schemas only] The current value of the schema component.
Schema get function
$schemaGet
Filament\Schemas\Components\Utilities\Get
[Actions in schemas only] A function for retrieving values from the schema data. Validation is not run on form fields.
Schema operation
$schemaOperation
string
[Actions in schemas only] The current operation being performed by the schema. Usually create, edit, or view.
Schema set function
$schemaSet
Filament\Schemas\Components\Utilities\Set
[Actions in schemas only] A function for setting values in the schema data.
Schema state
$schemaState
mixed
[Actions in schemas only] The current value of the schema that this action belongs to, like the current repeater item.
Selected Eloquent records
$selectedRecords
Illuminate\Support\Collection
[Bulk actions only] The Eloquent records selected in the table.
Table
$table
Filament\Tables\Table
[Actions in tables only] The table object that this action belongs to.

Sponsored by