Adds a clone action to Sonata Admin. This allows you to add a clone button to your list action that leads to a create form with the values of the cloned item prefilled.
The clone action does not create the clone in the database, this happens only when the create form is submitted.
$ composer require jorrit/sonata-clone-action-bundle
The extension is registered just like any other Sonata Admin extension. For more information regarding extensions, see the Sonata Admin documentation.
Add the following code to services.yml to add the extension to one or more admin classes.
Replace admin1
and admin2
with the service names of your admin classes.
admin.clone.extension:
class: Jorrit\SonataCloneActionBundle\Admin\Extension\CloneAdminExtension
tags:
- { name: sonata.admin.extension, target: admin1 }
- { name: sonata.admin.extension, target: admin2 }
Add the following code to services.yml to add the extension all admin classes.
admin.clone.extension:
class: Jorrit\SonataCloneActionBundle\Admin\Extension\CloneAdminExtension
tags:
- { name: sonata.admin.extension, global: true }
Edit your admin class to add clone
to the list of actions:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
...
->add('_action', null, [
'actions' => [
'edit' => [],
'delete' => [],
'clone' => [],
]
]);
}