CakePHP 在遇到验证错误后无法提交表单


CakePHP can't submit form after encountering a validation error

所以我对我的一个模型有一个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:为了澄清当我犯有问题的验证错误时,它会导致提交表单时的结果:页面重新加载,带有错误的输入以红色突出显示。提交前验证检查(即提醒错误数据的工具提示)不会发生此问题。

在你的行动中尝试

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

它将回答为什么表单不保存