【问题标题】:CakePHP can't submit form after encountering a validation errorCakePHP 遇到验证错误后无法提交表单
【发布时间】:2013-10-16 10:02:37
【问题描述】:

所以我为我的一个模型设置了add 操作。有一些验证规则,例如“不能留空”。

如果我第一次正确填写表格并提交它会成功保存数据。但是,如果我出现验证错误,我会收到表单上的错误警报,这很好。然后我更正验证错误并尝试重新提交。这次页面似乎只是刷新了(虽然表单中的数据被重新填充)但表单没有保存。

这是我在控制器中的操作:

public function add(  ){
    if ($this->request->is('post')) {

        $this->Sedol->create();
        if ($this->Sedol->save($this->request->data)) {
            $this->Session->setFlash(__('Sedol has been saved.'), 'default', array('class' => 'alert alert-success'));
            return $this->redirect(array('action' => 'index'));
        }
        $this->Session->setFlash(__('Unable to add sedol.'), 'default', array('class' => 'alert alert-danger'));
    }
    $this->set('ipsAssets', $this->Sedol->IpsAsset->find('list'));
}

任何想法为什么会发生这种情况?

编辑:查看发布数据的调试器,它只是没有被拾取......

Edit2:为了澄清当我提出有问题的验证错误时,它会在提交表单时导致:页面重新加载并且有错误的输入以红色突出显示。提交前验证检查不会出现此问题 - 即提醒错误数据的工具提示。

【问题讨论】:

标签: php validation cakephp


【解决方案1】:

在你的行动中尝试

if ($this->Sedol->save($this->request->data)) {
// code
}
pr($this->Sedol->validationErrors);

它会回答为什么表单没有保存

【讨论】:

  • 如前文所述,没有验证错误。更正验证错误并重新提交后会出现问题。
  • 您检查了validationErrors 属性吗?如果是,请尝试查看 beforeSave 事件函数 beforeSave() { pr($this->data); 中有哪些数据出口; } 检查代码是否到达这里
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多