我通过将一些数据插入字段并单击更新按钮来更新一些数据,但是 validates()
总是返回 false。
所有字段都已正确填写,并且不显示任何错误消息 - validates()
仅返回 false。
为什么?
$this->Post->set($this->data);
if ($this->Post->validates())
echo 'ok';
else
echo 'error';
最佳答案
检查 this post一些提示。 相关的在这里给出。
Save() 不起作用! 有时
save()
会在没有任何明显原因的情况下失败。你的数据数组看起来很好,你已经正确地构建了表单等等,但是没有执行任何查询。很可能由于验证错误而导致保存失败。也许你正在更新一些模型,虽然表单中的当前字段通过了验证,但有可能是一些“其他的”导致验证规则失败。查看验证过程的一种简单(且有用)的方法是在您的 View 中执行pr($this->validationErrors);
。通过使用此方法,您将准确了解模型验证的情况。另一种选择是将false
作为第二个参数传递给save();
以禁用验证。然而,后一种方法并没有给出太多提示,不应用于修复失败的问题,而是故意避免验证。Save() 仍然不起作用! 您的模型或应用程序模型中是否有
beforeSave();
?始终仔细检查此方法,更重要的是,确保它返回true
。在创建或更新时验证 CakePHP 有一个
'on'
键用于您的$validate
数组。它允许您指定是在创建新记录期间还是在更新现有记录期间强制执行规则。例如,如果您只想在创建新用户帐户时检查唯一的电子邮件地址,您可以将'on' => 'create'
添加到您的$validate
数组。因此,当您更新/编辑某些用户时,此规则将被忽略。
关于php - cakephp,验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4689232/