2016-10-25 2 views
1

Мой выбор aka EntityType: класс не заполняет опцию выбора.Symfony 3 Form EntityType не префикс из объекта

я быть_наст «контракт» -логический объект, которые имеют значение:

object(TradePortalBundle\Entity\Contract)[1206] 
private 'id' => int 26 
private 'classification' => int 25 

где классификация (последняя) должна мое значение по умолчанию для выбранного выбора. моя форма выглядит следующим образом:

$builder 
     // Klassifizierung 
     ->add('classification', EntityType::class, [ 
      'class' => 'TradePortalBundle:Dropdowns', 
      'query_builder' => function (EntityRepository $entityRepository){ 
       return $entityRepository->createQueryBuilder('d') 
        // select only the right section 
        ->where('d.dropdown_id = 1'); 
      }, 
      'choice_label' => 'label', 
      'choice_translation_domain' => 'messages', 
      'label' => 'contract.form.label.classification' 
     ]) 
}; 

public function configureOptions(OptionsResolver $resolver) 
{ 
    $resolver->setDefault('data_class', 'TradePortalBundle\Entity\Contract'); 
} 

и в моем контроллере я инициализировать контракт-объект:

/* @var $user User */ 
$user = $this->getUser(); 
$contract = !$user->getContract() ? new Contract() : $user->getContract(); 
$form = $this->createForm(ContractType::class, $contract); 
$form->handleRequest($request); 

if($form->isSubmitted() && $form->isValid()) { 

#var_dump($contract);die; 

$this->getDoctrine()->getManager()->persist($contract); 
$this->getDoctrine()->getManager()->flush($contract); 
} 

когда я упорствовать контракт-юридическое лицо, все ли в порядке, значения были сохранены в объекте , но разве это не префикс выбора? Я ожидаю, что выбор с id 25 будет предварительно заполнен, но выбран первый выбор.

ответ

0

Я думаю, это потому, что ваш TradePortalBundle\Entity\Contract должен иметь не идентификатор в classification поле, но сущность

object(TradePortalBundle\Entity\Contract)[1206] 
private 'id' => int 26 
private 'classification' => object(TradePortalBundle\Entity\Classification [XXX] 
    private 'id' => int 25 
+0

это была моя первая мысль тоже, я стараюсь сейчас с соотношением между контрактом и выпадающие. –