Symfony – Set EntityType form field default value
In this post we learn how to set default value to EntityType form field . EntityType form is especially designed for load options from doctrine entity.
You can easily set default value to EntityType form field by setting the refrence to ‘data’ attribute.
<?php // src/Webkul/Form/ProductType.php namespace Webkul\ProductBundle\Form; use Symfony\Component\Form\AbstractType; use Doctrine\ORM\EntityRepository; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolverInterface; class UserAccount extends AbstractType { public $container; public function __construct($container) { $this->container = $container; } public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('name', 'text', array( 'label' => 'Product Name', 'attr' => array( 'placeholder' => 'Enter product name' ) ) ); $builder->add('category', 'entity', array( 'class' => 'WebkulProductBundle:Category', 'property' => 'name', 'attr' => array( 'class' => 'selectpicker' ), 'query_builder' => function (EntityRepository $er) { return $er->createQueryBuilder('c'); }, 'data' => $this->container->get('doctrine.orm.entity_manager')->getReference("WebkulProductBundle:Category", 4) )); $builder->add('save', 'submit', array( 'label' => 'Save', 'attr' => array( 'class'=>'save-btn' ) ) ); } } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array( 'data_class' => 'Webkul\ProductBundle\Entity\Product', 'cascade_validation' => true, )); } public function setDefaultOptions(OptionsResolverInterface $resolver) { $this->configureOptions($resolver); } public function getName() { return 'product_form'; } }
View Comments
Comment or Ask a Question
Quick Links