Bonjour,
J'utilise CraueFormFlowBundle pour enregistrer une annonce en 2 étapes. Lors de la première étape, j'hydrate mon objet advert avec différents objets photo qui eux-mêmes sont hydratés avec un name, file, etc... Lorsque je fais un var_dump des photos en fin de traitement de soumission de la première étape, après même avoir appelé le formulaire pour hydrater la seconde,
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 ... $flow->bind($advert); // form of the current step $form = $flow->createForm(); if ($flow->isValid($form)) { $flow->saveCurrentStepData($form); if ($flow->nextStep()) { ... // form for the next step $form = $flow->createForm(); var_dump($advert->getPhotos()); } ...
celles-ci sont bien hydratées :
Par contre, lorsque je fais un var_dump des photos en début de traitement de la soumission de la deuxième étape,C:\cmder\roadtrip\src\Controller\RoadTripController.php:497:
object(Doctrine\Common\Collections\ArrayCollection)[1735]
private 'elements' =>
array (size=2)
1 =>
object(App\Entity\Photo)[1962]
private 'id' => null
private 'name' => string '2727a10887bfdc35330d13765ff9df00.png' (length=36)
private 'file' =>
object(Symfony\Component\HttpFoundation\File\UploadedFile)[62]
...
private 'advert' =>
object(App\Entity\Advert)[143]
...
private 'mainPhoto' => boolean true
2 =>
object(App\Entity\Photo)[1987]
private 'id' => null
private 'name' => string 'fd21031085caa730f185bb344c4614de.jpeg' (length=37)
private 'file' =>
object(Symfony\Component\HttpFoundation\File\UploadedFile)[33]
...
private 'advert' =>
object(App\Entity\Advert)[143]
...
private 'mainPhoto' => boolean false
j'ai trois photos au lieu de 2 et leurs attibuts sont à null :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ... Fin du traitement de la soumission de la première étape // form for the next step $form = $flow->createForm(); } else { Traitement de la soumission de la seconde étape var_dump($advert->getPhotos());
Comme c'est le même template twig qui est appelé pour le rendu du premier ou du second formulaireC:\cmder\roadtrip\src\Controller\RoadTripController.php:499:
object(Doctrine\Common\Collections\ArrayCollection)[1739]
private 'elements' =>
array (size=3)
1 =>
object(App\Entity\Photo)[2005]
private 'id' => null
private 'name' => null
private 'file' => null
private 'advert' => null
private 'mainPhoto' => boolean true
2 =>
object(App\Entity\Photo)[2030]
private 'id' => null
private 'name' => null
private 'file' =>
object(Symfony\Component\HttpFoundation\File\UploadedFile)[799]
...
private 'advert' => null
private 'mainPhoto' => boolean false
3 =>
object(App\Entity\Photo)[2031]
private 'id' => null
private 'name' => null
private 'file' =>
object(Symfony\Component\HttpFoundation\File\UploadedFile)[753]
...
private 'advert' => null
private 'mainPhoto' => boolean false
je lie ceci au fait que j'avais déjà constaté que si je revenais sur le premier formulaire via la flèche du navigateur alors que j'étais déjà sur le second, les champs liés aux photos (construits précédemment par du javascript) avaient disparus. Je pouvais les reconstruire via le bouton le permettant, mais je ne retrouvais pas les anciennes photos.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ... {% if flow.getCurrentStepNumber() == 1 %} Affichage du premier formulaire ... {% endif %} {% if flow.getCurrentStepNumber() == 2 %} Affichage du second formulaire ... {% endif %}
Quelqu'un aurait une idée pour m'éclairer?
Merci d'avance pour votre aide.
EDIT : est-ce que je dois envisager de passer par du Jquery et du session storage?
Partager