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".
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');
            }
        }
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.

Votre aide me serait précieuse.
Merci d'avance