10.1.11 Excluindo Posts
A seguir, vamos criar uma maneira para os usuários excluírem posts. Comece com uma action delete() no PostsController:
function delete($id) {
$this->Post->delete($id);
$this->Session->setFlash('O post com id: '.$id.' foi excluído.');
$this->redirect(array('action'=>'index'));
}
function delete($id) {$this->Post->delete($id);$this->Session->setFlash('O post com id: '.$id.' foi excluído.');$this->redirect(array('action'=>'index'));}
Esta lógica exclui o post dado por $id, e utiliza $this->Session->setFlash() para mostrar uma mensagem de confirmação para o usuário depois de redirecioná-lo para /posts.
Como estamos executando uma lógica de negócio logo antes de redirecionar, esta action não tem uma view. Você pode querer atualizar sua view index com links que permitam ao usuários excluir posts:
/app/views/posts/index.ctp
<h1>Posts do Blog</h1>
<p><?php echo $html->link('Adicionar Post', array('action' => 'add')); ?></p>
<table>
<tr>
<th>Id</th>
<th>Título</th>
<th>Ações</th>
<th>Criado em</th>
</tr>
<!-- Aqui é onde varremos nosso array $posts, exibindo informações do post -->
<?php foreach ($posts as $post): ?>
<tr>
<td><?php echo $post['Post']['id']; ?></td>
<td>
<?php echo $html->link($post['Post']['title'], array('action' => 'view', 'id' => $post['Post']['id']));?>
</td>
<td>
<?php echo $html->link('Excluir', array('action' => 'delete', 'id' => $post['Post']['id']), null, 'Deseja realmente excluir?' )?>
</td>
<td><?php echo $post['Post']['created']; ?></td>
</tr>
<?php endforeach; ?>
</table> /app/views/posts/index.ctp<h1>Posts do Blog</h1><p><?php echo $html->link('Adicionar Post', array('action' => 'add')); ?></p><table><tr><th>Id</th><th>Título</th><th>Ações</th><th>Criado em</th></tr><!-- Aqui é onde varremos nosso array $posts, exibindo informações do post --><?php foreach ($posts as $post): ?><tr><td><?php echo $post['Post']['id']; ?></td><td><?php echo $html->link($post['Post']['title'], array('action' => 'view', 'id' => $post['Post']['id']));?></td><td><?php echo $html->link('Excluir', array('action' => 'delete', 'id' => $post['Post']['id']), null, 'Deseja realmente excluir?' )?></td><td><?php echo $post['Post']['created']; ?></td></tr><?php endforeach; ?></table>
O código desta view também utiliza o HtmlHelper para solicitar uma confirmação ao usuário com um diálogo em Javascript antes de tentar excluir o post.
