Replicate action
概述
Filament 包含一个可以复制 Eloquent 记录的预制 Action。你可以这样使用:
use Filament\Actions\ReplicateAction;
ReplicateAction::make()
->record($this->post)
如果你想复制表格行记录,请使用 Filament\Tables\Actions\ReplicateAction 替换:
use Filament\Tables\Actions\ReplicateAction;
use Filament\Tables\Table;
public function table(Table $table): Table
{
return $table
->actions([
ReplicateAction::make(),
// ...
]);
}
排除属性
excludeAttributes() 方法用于告知 Action 复制记录时,应该排除哪些字段:
ReplicateAction::make()
->excludeAttributes(['slug'])
填充到表单前自定义数据
如果你想要在数据填充到表单前,对数据进行修改;你可以使用 mutateRecordDataUsing() 方法,修改 $data 数组,并且返回其填充到表单前修改的版本:
ReplicateAction::make()
->mutateRecordDataUsing(function (array $data): array {
$data['user_id'] = auth()->id();
return $data;
})
复制后重定向
使用 successRedirectUrl() 方法中,你可以对表单提交后的重定向进行自定义设置:
ReplicateAction::make()
->successRedirectUrl(route('posts.list'))