Récupérer données d'une table liée
Bonjour,
Après un bon moment de recherche, je poste ici ma problématique en espérant que vous pourrez me dire comment faire plus simplement.
J'au deux tables qui sont lié et je me sert d'une des tables pour en faire un menu déroulant.
Soit le Builder donne ceci
Code:
1 2 3
|
->add('id_type_contrat','entity',
array('class' => 'GestaPontauryBundle:TypeContrat','property' => 't_type_contrat')) |
ce qui génère exactement ce que je veux en terme de html
Code:
1 2 3 4 5 6 7 8 9
|
<p>
<label for="gesta_contratbundle_contrattype_id_type_contrat" class=" required">Contrat</label>
<select id="gesta_contratbundle_contrattype_id_type_contrat" name="gesta_contratbundle_contrattype[id_type_contrat]" required="required">
<option value="1">Eft</option>
<option value="3">Stage</option>
<option value="174">F70Bis</option>
</select>
</p> |
le souci est qu'au moment de valider via les outils Doctrine
Code:
1 2 3 4
|
$em = $this->getDoctrine()->getEntityManager();
$em->persist($formData);
$em->flush(); |
j'obtient l'erreur suivante :
Code:
1 2
|
Warning: spl_object_hash() expects parameter 1 to be object, integer given in /Users/gg/Sites/gesta/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php line 1095 |
Et a partir de là on peut dire ce qu'on veut, mais Symfony n'est pas très clair dans ses messages d'erreurs
Le souci est que Doctrine me renvoir la ligne complète de la table qui me sert pour mon menu, plutôt que simplement la value.
Du coup il faut pouvoir extraire cette données a travers les getters et setters de la table qui sert au menu au travers du getter de la premiere table (pas sur d'être clair là).
En gros pour moi avoir le resultat du value <option>, je dois le récupérer comme ceci
Code:
1 2
|
$formData->getIdContrat()->gettNom() |
Du coup je fais ceci pour valider
Code:
1 2
|
$formData->setIdContrat($formData->getIdContrat()->getTNom()); |
Voyez-vous plus simple ?
Merci.