Bonjour,
Dans le cadre de l'encodage d'une annonce, je passe l'entité "Advert" à une fonction de mon controller. Cette fonction va permettre d'appeler le formulaire permettant d'ajouter des périodes à l'annonce :
Ce qui donne ceci :
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 /** * @Route("/road_trip/{id}/periodsManagement", name="road_trip_periodsManagement") */ public function periodsForm(Advert $advert, Request $request, ObjectManager $manager) { $numberPeriods = count($advert->getPeriods()); $form = $this->createForm(PeriodsAdvertType::class, $advert); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { ... $manager->persist($advert); $manager->flush(); ... } return $this->render('road_trip/createPeriods.html.twig', ['form' => $form->createView(), 'editMode' => $numberPeriods > 0]); }
Si on clique sur le bouton ajouter une prériode, on peut ajouter une (ou plusieurs) périodes de manière dynamique.
Mon souci est que si je désire créer une seule période, pas de souci, celle-ci est bien créée en base de données. Par contre, dès que je désire en enregistrer plusieurs, j'obtiens l'erreur suivante :
Dans mon entité "Period", ma période est liée de cette manière à mon annonce :Warning: Illegal offset type
Et dans mon annonce, on retrouve les différentes périodes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 /** * @ORM\ManyToOne(targetEntity="App\Entity\Advert", inversedBy="periods") * @ORM\JoinColumn(nullable=false) */ private $advert;
Je ne parviens pas à comprendre l'origine du problème. Quelqu'un aurait une idée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /** * @ORM\OneToMany(targetEntity="App\Entity\Period", mappedBy="advert", cascade={"persist"}, orphanRemoval=true) */ private $periods;
Merci d'avance pour votre aide.
Partager