Welcome to the Cookbook

loading...

10.1.11 Supprimer des Posts

Le texte original de cette section a changé depuis qu'il a été traduit. Aidez-nous à corriger cette différence. Vous pouvez :

Plus d'information à propos des traductions

A présent, mettons en place un moyen de suppression des billets pour les utilisateurs. Démarrons avec une action delete() dans le PostsController :

function delete($id) {
	$this->Post->delete($id);
	$this->flash('Le post avec l\'id: '.$id.' a été supprimé.', '/posts');
}
  1. function delete($id) {
  2. $this->Post->delete($id);
  3. $this->flash('Le post avec l\'id: '.$id.' a été supprimé.', '/posts');
  4. }

Cette logique supprime le billet spécifié par "$id" et utilise flash() pour afficher à l'utilisateur un message de confirmation avant de le rediriger vers /posts.

Parce que nous exécutons juste un peu de logique et de redirection, cette action n'a pas de vue. Vous voudrez peut-être mettre à jour votre vue "index" avec des liens qui permettent aux utilisateurs de supprimer des billets, ainsi :

/app/views/posts/index.ctp

<h1>Blog posts</h1>
<p><?php echo $html->link('Ajouter un Post', '/posts/add'); ?></p>
<table>
	<tr>
		<th>Id</th>
		<th>Titre</th>
                <th>Actions</th>
		<th>Créé le</th>
	</tr>

<!-- C'est ici que nous bouclons sur le tableau $posts afin d'afficher les informations des posts -->

	<?php foreach ($posts as $post): ?>
	<tr>
		<td><?php echo $post['Post']['id']; ?></td>
		<td>
		<?php echo $html->link($post['Post']['title'], '/posts/view/'.$post['Post']['id']);?>
		</td>
		<td>
		<?php echo $html->link('Supprimer', "/posts/delete/{$post['Post']['id']}", null, 'Etes-vous sûr ?' )?>
		</td>
		<td><?php echo $post['Post']['created']; ?></td>
	</tr>
	<?php endforeach; ?>

</table>
  1. /app/views/posts/index.ctp
  2. <h1>Blog posts</h1>
  3. <p><?php echo $html->link('Ajouter un Post', '/posts/add'); ?></p>
  4. <table>
  5. <tr>
  6. <th>Id</th>
  7. <th>Titre</th>
  8. <th>Actions</th>
  9. <th>Créé le</th>
  10. </tr>
  11. <!-- C'est ici que nous bouclons sur le tableau $posts afin d'afficher les informations des posts -->
  12. <?php foreach ($posts as $post): ?>
  13. <tr>
  14. <td><?php echo $post['Post']['id']; ?></td>
  15. <td>
  16. <?php echo $html->link($post['Post']['title'], '/posts/view/'.$post['Post']['id']);?>
  17. </td>
  18. <td>
  19. <?php echo $html->link('Supprimer', "/posts/delete/{$post['Post']['id']}", null, 'Etes-vous sûr ?' )?>
  20. </td>
  21. <td><?php echo $post['Post']['created']; ?></td>
  22. </tr>
  23. <?php endforeach; ?>
  24.  
  25. </table>

Note : le code de cette vue utilise également le Helper "Html" pour afficher à l'utilisateur un message de confirmation JavaScript avant qu'il ne tente de supprimer un billet.