Bonjour,
Je vous soumet un problème que je n'arrive pas à expliquer
Contexte :
Une form permet de créer un nouvel enregistrement (nouveaucoutfixe), cet objet a une date de début et une date de fin.
La base comporte un enregistrement existant (anciencoutfixe)
La manip consiste à prendre la date de début du "nouveaucoutfixe" et de mettre celle-ci moins 1 jour dans la date de fin de "anciencoutfixe".
Mon problème est que lorsque je fait "$datenouveaudebut->modify('-1 day');" cela va modifier l'objet "nouveaucoutfixe" sans raison apparente du moins pour moi.
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
28
29
30
31
32
33
34
35 $form->handleRequest($request); $ok=true; if($form->isSubmitted() && $form->isValid()) { // Nous sommes en création, on essaie de controller les dates de début et de fin // On vérifie que la date de début soit > à la date du jour $datedebutmini = new DateTime(); $datenouveaudebut = $nouveaucoutfixe->getDateDebut(); if ($datedebutmini < $datenouveaudebut){ dump($nouveaucoutfixe->getDateDebut()); // affiche 2018-12-29 donc OK dump($datenouveaudebut); // affiche 2018-12-29 donc OK // On modifie la date de fin du coût actuel (date de début du nouveau - 1 jour) $datenouveaudebut->modify('-1 day'); dump($nouveaucoutfixe->getDateDebut()); // affiche 2018-12-28 pourquoi ???? devrait être 2018-12-29 dump($datenouveaudebut); // affiche 2018-12-28 donc OK $anciencoutfixe->setDateFin($datenouveaudebut); dump($anciencoutfixe->getDateFin()); // affiche 2018-12-28 donc OK dump($nouveaucoutfixe->getDateDebut()); // affiche 2018-12-28 pourquoi ???? devrait être 2018-12-29 dump($datenouveaudebut); // affiche 2018-12-28 donc OK die(); } else{ $ok = false; } if($ok){ // $manager->persist($nouveaucoutfixe); // $manager->persist($anciencoutfixe); // $manager->flush(); return $this->redirectToRoute('listcoutfixe_voir'); } }
Votre aide me serait précieuse.
Merci d'avance
Partager