Bonjour à tous.
J'ai visiblement ouvert une discussion sur mon problème au mauvais endroit ! http://www.developpez.net/forums/d15...ons-champ-date
Je me permet de la reposter ici.
J'ai un petit problème avec une entité qui refuse de se mettre à jours.
On gère ici des inscriptions à des formations.
Une tache planifiée est chargée d'envoyer un mail de rappel une heure avant le début de la formation.
On enregistre la date de l'envoie de ce mail dans l'inscription pour éviter de notifier plusieurs fois l'utilisateur.
Voici mon entité Inscription :
Et ma commande qui va modifier mes inscriptions (version simplifié)
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
36
37
38
39
40
41
42
43
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Lorsque j'exécute la commande la première fois :
La commende affiche l'état de mon Inscription avant sa modification.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Inscription ID:809 H1:No_date S:active
Je la re-exécute :
Problème : on constate que l'inscription n'a pas été modifiée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Inscription ID:809 H1:No_date S:active
Je dé-commente la ligne //$i->setState('foo_'.date('H:i.s'));
Je re-exécute deux fois :
L'entity-manager à bien détecter que l'objet a été modifié est a enregistré les deux modifications en base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Inscription ID:809 H1:10:53:26 S:foo_10:53.26
Si je re-exécute :
Pas de problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Inscription ID:809 H1:10:56:32 S:foo_10:56:32
Je Re commente la ligne $i->setState('foo_'.date('H:i.s'));
Je re-exécute deux fois :
Le champ date a bien été modifié et le champ state est resté intacte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Inscription ID:809 H1:10:59:42 S:foo_10:56:32
ça veut dire que l'entity-manager arrive bien à détecter les modifications dans les champs date. Mais pas le passage de null à une date.
Pourquoi ?
Existe-t-il un moyen de 'forcer' l'enregistrement ?
J'ai évidement essayé d'ajouter un $em->persist($i); mais comme il ne sert a rien ici ça ne résout pas le pb.
Mon problème ressemble à celui-ci : http://stackoverflow.com/questions/1...field/15488230
Mais je ne vois pas comment faire mieux que new \DateTime()
Sur d'autres projets on a pas eu ce problème.
ça viens peut-être de ma conf doctrine ou de mon entité ?
config.yml
Merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14

 

 
		
		 
         
 

 
			
			



 Doctrine ne détecte pas les modifications dans un champ date
 Doctrine ne détecte pas les modifications dans un champ date
				 Répondre avec citation
  Répondre avec citation
Partager