На мой взгляд, у меня есть форма с кнопками отправки и отмены. Оба действия возвращают меня на мою индексную страницу. Единственное различие заключается в том, что Submit отправляет нормальный db submit и отображает сообщение «Ваш счет был обновлен», тогда как «Отмена» должна отменить обновление и отобразить «Обновить отменено». Здесь нет кода контроллера:Кнопка CakePHP Cancel не срабатывает
public function edit($id = null) {
$this->Invoice->id = $id;
$this->set('invoice', $this->Invoice->read(null, $id));
//Check for $_GET
if ($this->request->is('get')) {
$this->request->data = $this->Invoice->read();
} else {
// Bail if cancel button pressed
if (isset($this->params['form']['cancel'])) {
$this->Session->setFlash('Update canceled.');
$this->redirect(array('action' => 'index'));
} else if ($this->Invoice->save($this->request->data)) {
$this->Session->setFlash('Your Invoice has been updated.');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Unable to update your Invoice.');
}
}
}
А вот вид:
<fieldset>
<legend>Enter New Values</legend>
<li><?php echo $this->Form->input('purchaseOrderNumber'); ?></li>
<li><?php echo $this->Form->input('siteAddress'); ?></li>
<li><?php echo $this->Form->input('siteCity'); ?></li>
<li><?php echo $this->Form->input('siteState'); ?></li>
<?php
echo $this->Form->button('Submit Form', array('type' => 'submit'));
echo $this->Form->submit('Cancel', array('div' => false, 'name' => 'cancel'));
?>
Однако, независимо от того, который при нажатии кнопки, он всегда возвращает первое сообщение. Он также выполняет db submit.
Я безуспешно пытался использовать XDebug с Netbeans, но это история в другое время. Обычно мои ошибки очевидны для других. Итак, я надеюсь, кто-то сможет вернуть меня в нужное русло.
Каков вывод, если вы положили это сразу после вашего заявления else и нажмите отменить? 'Отладки ($ this-> PARAMS); exit; ' – Wylie
Я только что связался с ссылкой на индекс –