Удалить ссылку в запеченных представлениях (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(), вместо того, чтобы указывать идентификатор элемента отдельно, чтобы удалить этот элемент