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:
object(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 }
controller
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é !';
        }          
 
     }
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
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; 
    }
}
?>