Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP可以';遇到验证错误后,请不要提交表单_Php_Validation_Cakephp - Fatal编程技术网

CakePHP可以';遇到验证错误后,请不要提交表单

CakePHP可以';遇到验证错误后,请不要提交表单,php,validation,cakephp,Php,Validation,Cakephp,因此,我有一个add操作用于我的一个模型。有一些验证规则,如“不能留空” 如果我第一次正确填写表格并提交,它将成功保存数据。但是,如果我出现验证错误,我会被提醒注意表单上的错误,这很好。然后,我更正验证错误并尝试重新提交。这一次页面似乎只是刷新了(虽然表单中的数据被重新填充),但表单没有保存 以下是我在控制器中的操作: public function add( ){ if ($this->request->is('post')) { $this->S

因此,我有一个
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'));
}
知道为什么会这样吗

编辑:在调试器中查看post数据,它只是没有被拾取

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

在您的操作中,请尝试

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

它将回答表单未保存的原因

表单似乎仍然包含验证错误。尝试显示验证错误数组。此外,请确保cake debug为ONY您可以在控制器中显示错误,就像在调试控制台中查看验证错误时一样,所有为空表示没有验证错误。如前一条评论所述,没有验证错误。更正验证错误并重新提交后出现问题。是否检查了validationErrors属性??如果是,请尝试查看beforeSave事件函数beforeSave()中包含哪些数据{pr($this->data);退出;}检查代码是否到达此处