use Sonata\AdminBundle\Form\FormMapper; class UserAdmin extends AbstractAdmin { protected function configureFormFields(FormMapper $formMapper) { $formMapper->add('username'); $formMapper->add('password'); $formMapper->add('email'); $formBuilder = $formMapper->getFormBuilder(); $form = $formBuilder->getForm(); // Render the form return $this->render('form.html.twig', [ 'form' => $form->createView(), ]); } }
use Symfony\Component\Form\CallbackTransformer; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\Extension\Core\Type\TextType; class CustomFieldType extends TextType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->addModelTransformer(new CallbackTransformer( function ($text) { // transform the text into custom format return "..."; }, function ($custom) { // revert the custom format back to text return "..."; } )); } } class UserAdmin extends AbstractAdmin { protected function configureFormFields(FormMapper $formMapper) { $formMapper->add('custom', CustomFieldType::class); $formBuilder = $formMapper->getFormBuilder(); $form = $formBuilder->getForm(); // Render the form return $this->render('form.html.twig', [ 'form' => $form->createView(), ]); } }Package library: Symfony\Bundle\FrameworkBundle\Form.