Удалить ссылку в запеченных представлениях (index.ctp) приводит меня к view.ctp вместо фактического удаления

У меня есть запеченное приложение в 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']));

Вот запеченная функция delete в Controller/PostsController.php:

    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, и он работал как положено: он удаляет элемент и высвечивает сообщение "Сообщение удалено".

1 ответ

Я думаю, что вы должны передать идентификатор элемента, который будет удален в delete(), вместо того, чтобы указывать идентификатор элемента отдельно, чтобы удалить этот элемент

Другие вопросы по тегам