1

私は 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 で同じコードをテストしたところ、期待どおりに機能したことを確認する必要があります。要素が削除され、「投稿が削除されました」というメッセージが点滅します。

4

1 に答える 1

1

要素のIDを個別に指定してその要素を削除するのではなく、delete()で削除される要素のIDを渡す必要があると思います

于 2013-03-29T13:10:51.613 に答える