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 :
Voici les lignes concernées :Fatal error: Uncaught TypeError: Argument 1 passed to CommentaireManager::delete() must be an instance of Commentaire, array given
Contrôleur :
Modèle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager