Bonsoir à tous,
Etant débutant sur Symfony2, je tourne en rond sur un problème et j'aimerai avoir vos avis.
J'ai 2 entités (Voyage et Itineraire (route en anglais)) reliées entre elles par une relation OneToMany (Un voyage est composé de plusieurs itinéraires)
Voici leur classse en résumé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 class OswRoute { /** * @var \OswTravel * * @ORM\ManyToOne(targetEntity="OswTravel", inversedBy="routes") * @ORM\JoinColumn(name="OswTravel_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")) */ private $travel; /** * Set travel * * @param \Opensworld\SiteBundle\Entity\OswTravel $travel * @return OswRoute */ public function setTravel(OswTravel $travel) { $this->travel = $travel; return $this; } }Et le formulaire de création d'un itinéraire relatif à un voyage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class OswTravel { /** * @ORM\OneToMany(targetEntity="OswRoute", mappedBy="travel") */ private $routes; public function __construct() { $this->routes = new \Doctrine\Common\Collections\ArrayCollection(); } }
Le soucis, c'est que je n'arrive pas à passer en parametre l'entité du voyage lors de la génération de ce formulaire. Si je décommente ->add('travel') je peux sélectionner un voyage mais comme la création d'un itinéraire est toujours relative au voyage en cours d'édition, j'aimerai grâce à son id renseigner l'entité itineraire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public function buildForm(FormBuilderInterface $builder, array $options){ $builder ->add('addressGmaps') ->add('latitude') ->add('title') ->add('detail') ->add('position') /*->add('travel')*/ ; }
J'ai fait ça :
mais ça génère cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $em = $this->getDoctrine()->getManager(); $travel = $em->getRepository('OpensworldSiteBundle:OswTravel')->find($id); $entity = new OswRoute(); $entity.setTravel($entity); //ligne 52 $form = $this->createCreateForm($entity, $idparent);
UndefinedFunctionException: Attempted to call function "setTravel" from namespace "Opensworld\SiteBundle\Controller" in D:\wamp\www\opensworld_new\src\Opensworld\SiteBundle\Controller\OswRouteController.php line 52.
Merci d'avance à celui qui éclairera ma lanterne.
Partager