私は CakePHP 2.0.0 に焼き付けたアプリを持っていて、ビューの焼き付けられた index.ctp (posts/) のリンクは、実際にはなく、ビュー (posts/view/id とそこでのみ投稿を削除できます) に送信されます。要素を削除し、「投稿が削除されました」というメッセージを点滅させます。何故ですか?
View/Posts/index.ctp に焼き付けたリンクは次のとおりです。
$this->Form->postLink(__('Delete'), array('action' => 'delete', $post['Post']['id']), null, __('Are you sure you want to delete %s?', $post['Post']['id']));
Controller/PostsController.php でベイクされた関数 delete は次のとおりです。
public function delete($id = null) {
if (!$this->request->is('post')) {
throw new MethodNotAllowedException();
}
$this->Post->id = $id;
if (!$this->Post->exists()) {
throw new NotFoundException(__('Invalid post'));
}
if ($this->Post->delete()) {
$this->Session->setFlash(__('Post deleted'));
$this->redirect(array('action'=>'index'));
}
$this->Session->setFlash(__('Post was not deleted'));
$this->redirect(array('action' => 'index'));
}
CakePHP 2.2.3 で同じコードをテストしたところ、期待どおりに機能したことを確認する必要があります。要素が削除され、「投稿が削除されました」というメッセージが点滅します。