Fatal error: Uncaught TypeError: must be an instance of, array given
Bonjour,
Je rencontre un problème avec la suppression de mes commentaires signalés. Je n'arrive pas a trouver de solution par mes propres moyens...
C'est mon premier 'gros' projet en PHP, et je ne suis pas encore très à l'aise avec la résolution des différents problèmes qui font surface.
Voici le message d'erreur exact :
Citation:
Fatal error: Uncaught TypeError: Argument 1 passed to CommentaireManager::delete() must be an instance of Commentaire, array given
Voici les lignes concernées :
Contrôleur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| public function supprimerCommentaireSignale() {
if (isset($_REQUEST['idCommentaire'])) {
$com = $_REQUEST['idCommentaire'];
}
$com = $this->commentaireManager->getTableauCommentairesSignales();
$supprimeCommentaireSignale = $this->commentaireManager->delete($com);
if ($supprimeCommentaireSignale == true) {
header('Location: index.php?action=pageCommentairesSignales');
exit();
}
$this->pageCommentairesSignales();
} |
Modèle :
Code:
1 2 3 4 5 6 7 8 9
| public function getTableauCommentairesSignales() {
$commentairesSignales = [];
$bdd = $this->getBdd();
$getCommentairesSignales = $bdd->query('SELECT * from commentaires WHERE signalement_commentaire > 0');
while ($commentaireSignale = $getCommentairesSignales->fetch(PDO::FETCH_ASSOC)) {
$commentairesSignales[] = new Commentaire($commentaireSignale);
}
return $commentairesSignales;
} |
Code:
1 2 3 4 5
| public function delete(Commentaire $com) {
// Exécute une requête de type DELETE
$bdd = $this->getBdd();
$bdd->exec('DELETE FROM commentaires WHERE id_commentaire = ' . $com->id());
} |
J'ai à peu près le même mode de fonctionnement pour la suppression de mes chapitres, et celui-ci fonctionne sans aucun problème.
Par ailleurs, j'ai quelque peu trouvé un moyen de gérer ça mais ça fonctionne seulement lorsqu'il y a qu'un seul commentaire signalé grâce à un rowCount() == 1, mais dès qu'il y en a plusieurs forcément ça coince...
Merci beaucoup pour vos retours :ave: