Bonjour,
J'ai un soucis, je ne vois pas d'où peut venir le problème aprés moulte recherche.
A la construction de l'objet $commentaires, je n'ai que le dernier champ qui s'instancie en l'occurence 'id_billet'. Si j'enléve 'id_billet', il n'y as que 'contenu' qui s'instencie. Bref, toujours que le derniers champs.
Si quelqu'un peut m'aider?
Merci d'avance.
le var_dump:
controllerobject(App\Objet\Commentaires)#5 (7) { ["erreur":"App\Objet\Commentaires":private]=> array(0) { } ["id":"App\Objet\Commentaires":private]=> NULL ["pseudo":"App\Objet\Commentaires":private]=> NULL ["mail":"App\Objet\Commentaires":private]=> NULL ["contenu":"App\Objet\Commentaires":private]=> NULL ["id_billet":"App\Objet\Commentaires":private]=> int(29) ["dateAjout":"App\Objet\Commentaires":private]=> NULL }
Classe
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 $db = Connect::getPDO(); $manager = new PublicManager($db); $commentaires = new Commentaires( [ 'pseudo' => $_POST['pseudo'], 'mail' => $_POST['mail'], 'contenu' => $_POST['contenu'], 'id_billet' => (int)$_POST['id_billet'] ] ); var_dump($commentaires); if(isset($_POST['id'])) { $commentaires->setId($_POST['id']); } ; if($commentaires->isValid()) { $manager->save($commentaires); $message = $commentaires->isNew() ? 'Le billet a bien été ajoutée !' : 'Le billet a bien été modifié !'; } }
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123 class Commentaires { private $erreur = []; private $id; private $pseudo; private $mail; private $contenu; private $id_billet; private $dateAjout; const ID_BILLET_INVALIDE = 1; const PSEUDO_INVALIDE = 2; const CONTENU_INVALIDE = 3; const MAIL_INVALIDE = 4; public function __construct($valeurs=[]) { if(!empty($valeurs)) { $this->hydrate($valeurs); } } public function hydrate($donnees) { foreach ($donnees as $attribut => $valeur); { $methode = 'set'.ucfirst($attribut); if (is_callable([$this, $methode])) { $this->$methode($valeur); } } } public function isNew() { return empty($this->id); } public function isValid() { return !(empty($this->id_billet) || empty($this->pseudo) || empty($this->contenu) || empty($this->mail)); } //setters public function setId($id) { $this->id = (int) $id; } public function setId_billet($id_billet) { if (!is_int($id_billet) || empty($id_billet)) { $this->erreurs[] = self::ID_BILLET_INVALIDE; } else { $this->id_billet = (int) $id_billet; } } public function setPseudo($pseudo) { if (!is_string($pseudo) || empty($pseudo)) { $this->erreurs[] = self::PSEUDO_INVALIDE; } else { $this->pseudo = $pseudo; } } public function setContenu($contenu) { if (!is_string($contenu) || empty($contenu)) { $this->erreur[] = self::CONTENU_INVALIDE; } else { $this->contenu = $contenu; } } public function setMail($mail) { if (!is_string($mail) || empty($mail)) { $this->erreurs[] = self::MAIL_INVALIDE; } else { $this->mail = $mail; } } public function setDateAjout(DateTime $dateAjout) { $this->dateAjout = $dateAjout; } //getters public function erreurs() { return $this->erreurs; } public function id() { return $this->id; } public function id_billet() { return $this->id_billet; } public function pseudo() { return $this->pseudo; } public function contenu() { return $this->contenu; } public function dateAjout() { return $this->dateAjout; } } ?>
Partager