2017-06-22 6 views
0

Je suis en train de convertir un projet de Symfony 2 en Symfony 3 et j'ai rencontré un problème. J'ai une entité de l'événement qui a une entité TwitterSearch qui est définie par les éléments suivants dans event.php:Sous-formulaire Symfony 3 soumis en tant que tableau au lieu de l'entité

/** 
    * @ORM\ManyToOne(targetEntity="TwitterSearch", cascade={"persist"}) 
    * @ORM\JoinColumn(name="twitter_search_id", referencedColumnName="id") 
    */ 
    private $twitterSearch; 

Voilà comment je l'ai mis en place la relation dans le EventType:

$builder->add('twitterSearch', TwitterSearchType::class, array(
     'required'=>false, 
    )); 

Voici le code du contrôleur lorsque le formulaire est soumis:

$entity = new Event(); 
    $form = $this->createCreateForm($entity); 
    $form->handleRequest($request); 

    if ($form->isValid()) { 
     $entity = $form->getData(); 
     $em = $this->getDoctrine()->getManager(); 
     $em->persist($entity); 
     $em->flush(); 
    } 

Cette habitude de travailler dans Symfony 2, mais lorsque le formulaire est soumis est jeté l'erreur suivante:J'ai débogué le code et l'attribut twitterSearch de l'événement était et tableau. Est-ce que quelqu'un sait pourquoi il ne convertit plus cela à une instance de TwitterSearch?

Répondre

1

Utilisez plutôt EntityType.

Exemple:

$builder->add('twitterSearch', EntityType::class, array(
    'class' => TwitterSearch::class, 
    'choice_label' => 'name', 
)); 
+0

excellent, grâce à cela :-) – dk80