简体   繁体   中英

Adding a default value along with entity in form type of Symfony2

I am a totally new in symfony2. I met a situation which I can't solve till now. I have a controller, formtype and eventsubscriber in my project. The form builds by binding the entities. In that case for a particular entity I need to add a default value along with an ID in one of the form fields. My form type is

$builder->add('breed', EntityType::class, array(
      'label' => 'Breed',
      'class' => 'AppBundle:Masters\Breed',
      'placeholder' => '----Select Breed----',
      'query_builder' => function (EntityRepository $er) {
          return $er->createQueryBuilder('b')
          ->orderBy('b.sortOrder', 'DESC');
      },
     'choice_label' => 'breed',
     ));
$builder->addEventSubscriber(new BreedSubscriber($factory));

My Event Subscriber is

private function addBreed($form, $breedmasterId) {
 $form->add($this->factory->createNamed('breed',EntityType::class,null, array(
  'class'         => 'AppBundle:Masters\Breed',
  'placeholder'   => '----Select Breed--------',
  'choice_label'  => 'breed',
  'required'      =>  TRUE,
  'mapped'        =>  false,
  'query_builder' => function (EntityRepository $repository) use ($breedmasterId) {
         $qb = $repository->createQueryBuilder('bm')
                ->where('bm.breed = :breedmasterId')
                 ->setParameter('breedmasterId', $breedmasterId);
                return $qb;
                },
                'auto_initialize' => false
    )));
}

I need to add a default value such as "General" along with an "id" in the addBreed subscriber and it need to be validate on formsubmission. Thanks in advance for the help.

You can add the following 'data' key in the array you configure your form:

$builder->add('breed',null, array(
     'label' => 'Breed',
     'data' => 'Sih Tzu'
))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM