Page 1 sur 1

Modification de commentaire dans une architecture MVC

Posté : 07 août 2019, 17:51
par superLKN
Bonjour,

Ca fait des jours que j'essaye d'ajouter la possibilité de modifié les commentaires dans un miniblog, tout ça dans une architecture MVC.
Cependant au submit du formulaire sur le commentaire que je dois modifié une page blanche s'affiche sans erreur, mais si j'enlève un point virgule les erreurs s'affichent bien.
Les echo 0 et 1 dans mon routeur me sont bien retournés au submit du formlulaire, mais à part ça j'ai toujours ma page blanche et la modification ne se fait pas non plus.

Mon controller :

Code : Tout sélectionner

function editComment($id, $postId) { $commentManager = new \TPBLOG\Model\CommentManager(); $affectedComment = $commentManager->updateComment($id, $postId); return $affectedComment; }
Mon model :

Code : Tout sélectionner

public function updateComment($id, $postId) { $db = $this->dbConnect(); $req = $db->prepare('UPDATE comments SET comment = ?, comment_date = NOW() WHERE id = ?'); $newComment = $req->execute(array($id, $postId)); return $newComment; }
La vue de mon formulaire :

Code : Tout sélectionner

<?php $title = 'Minibog - Edition commentaire'; ?> <?php ob_start(); ?> <h1>Mon super blog !</h1> <p><a href="index.php">Retour à la liste des billets</a></p> <h2><?php echo 'Commentaire de ' . $comment['author'] . ', le ' . $comment['comment_date']; ?></h2> <form action="index.php?action=editComment&amp;id=<?= $comment['id'] ?>&amp;postId=<?= $comment['post_id'] ?>" method="post"> <div> <label for="author">Auteur</label><br /> <input type="text" id="author" name="author" value="<?php echo htmlspecialchars($comment['author']); ?>" /> </div> <div> <label for="comment">Commentaire</label><br /> <textarea id="comment" name="comment"> <?php echo nl2br(htmlspecialchars($comment['comment'])); ?> </textarea> </div> <div> <input type="submit" /> </div> </form> <?php $content = ob_get_clean(); ?> <?php require('template.php'); ?>
Le bouton modifier dans la vue d'un post :

Code : Tout sélectionner

<a href="index.php?action=edit&amp;post_id=<?= $post['id'] ?>&amp;comment_id=<?= $comment['id'] ?>">modifier</a> <br><br>
Et mon routeur :

Code : Tout sélectionner

elseif ($_GET['action'] == 'editComment') { echo "0"; if (!empty($_GET['id']) && !empty($_GET['postId'])) { echo "1"; editComment($_GET['id'], $_GET['postId']); } else { throw new Exception('Tous les champs ne sont pas remplis !'); } }
J'ai mis que les éléments dont je me sers pour modifié le commentaire, pas le code en entier.
Voila, si vous aviez une piste je suis preneur! Merci d'avance ! :)

Re: Modification de commentaire dans une architecture MVC

Posté : 07 août 2019, 18:14
par or 1
$req = $db->prepare('UPDATE comments SET comment = ?, comment_date = NOW() WHERE id = ?');
editComment($_GET['id'], $_GET['postId']);
le nouveau commentaire est dans $_POST['comment'] et ce qui est mis par l'update dans la table, c'est l'id du billet, soit une idée étonnante.