Introduction
Filament includes an action that is able to replicate Eloquent records. You may use it like so:Excluding attributes
TheexcludeAttributes() method is used to instruct the action which columns should be excluded from replication:
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 themutateRecordDataUsing() method to modify the $data array, and return the modified version before it is filled into the form:
Redirecting after replication
You may set up a custom redirect when the form is submitted using thesuccessRedirectUrl() method:
As well as $record, the successRedirectUrl() function can inject various utilities as parameters.
$record, the successRedirectUrl() 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.
Replica Eloquent record
$replica
Illuminate\Database\Eloquent\Model
The Eloquent model instance that was just created as a replica of the original record.
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.
Customizing the replicate notification
When the record is successfully replicated, a notification is dispatched to the user, which indicates the success of their action. To customize the title of this notification, use thesuccessNotificationTitle() method:
As well as allowing a static value, the successNotificationTitle() method also accepts a function to dynamically calculate it. You can inject various utilities into the function as parameters.
successNotificationTitle() method also accepts a function to dynamically calculate it. You can inject various utilities into the function 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.
Replica Eloquent record
$replica
Illuminate\Database\Eloquent\Model
The Eloquent model instance that was just created as a replica of the original record.
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.
successNotification() method:
As well as allowing a static value, the successNotification() method also accepts a function to dynamically calculate it. You can inject various utilities into the function as parameters.
successNotification() method also accepts a function to dynamically calculate it. You can inject various utilities into the function 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.
Notification
$notification
Filament\Notifications\Notification
The default notification object, which could be a useful starting point for customization.
Eloquent record
$record
?Illuminate\Database\Eloquent\Model
The Eloquent record for the current action, if one is attached.
Replica Eloquent record
$replica
Illuminate\Database\Eloquent\Model
The Eloquent model instance that was just created as a replica of the original record.
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.
successNotification(null) method:
Lifecycle hooks
Hooks may be used to execute code at various points within the action’s lifecycle, like before the replica is saved.These hook functions 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.
Replica Eloquent record
$replica
Illuminate\Database\Eloquent\Model
The Eloquent model instance that was just created as a replica of the original record.
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.
Halting the replication process
At any time, you may call$action->halt() from inside a lifecycle hook, which will halt the entire replication process:
cancel() the action instead of halting it: