在我看来,我有一个带有提交和取消按钮的表单。这两个操作都将我返回到我的索引页面。唯一的区别是 Submit 执行普通的数据库提交并显示消息“您的发票已更新。”,而 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'));
?>
但是,无论按下哪个按钮,它总是返回第一条消息。它还执行数据库提交。
我尝试将 XDebug 与 Netbeans 一起使用,但未成功,但这是另一个时代的故事。通常我的错误对其他人来说是显而易见的。所以,我希望有人能让我重回正轨。