cakephp,验证错误

lol*_*ola 4 php cakephp

我通过将数据插入字段并单击更新按钮来更新一些数据,但validates()始终返回false.所有字段都正确填充,并且不显示任何错误消息 - validates()只返回false.为什么?

$this->Post->set($this->data);
if ($this->Post->validates())
    echo 'ok';
else
    echo 'error';
Run Code Online (Sandbox Code Playgroud)

RSK*_*RSK 5

查看这篇文章了解一些提示.这里给出了相关的内容.

  1. 保存()不起作用!有时它会在save()没有任何明显原因的情况下失败.您的数据数组看起来很好,您已正确构建表单等,但没有执行任何查询.由于验证错误,保存很可能失败.也许您正在更新某个模型,并且当表单中的当前字段通过验证时,某些"其他"可能导致验证规则失败.通过验证可以轻松(有用)查看正在进行的操作pr($this->validationErrors);的方法.通过使用这种方法,您可以准确地看到模型验证发生了什么.另一个选项是false作为第二个参数传递save();,以便禁用验证.但是,后一种方法没有提供太多提示,不应该用于修复失败的问题,而是故意避免验证.

  2. 保存()仍然无法正常工作!您有beforeSave();模型或应用模型吗?始终仔细检查此方法,更重要的是,确保它返回true.

  3. 在创建或更新时进行验证CakePHP具有'on'可在$validate阵列中使用的密钥.它允许您指定是在新记录创建期间还是在更新现有记录期间强制执行规则.例如,如果您只想在创建新用户帐户时检查唯一的电子邮件地址,则应添加'on' => 'create'$validate阵列中.因此,在更新/编辑某些用户时,将忽略此规则.