我在cakephp 2.5中有一个表单。 如果单击了保存按钮,则会使用所有适用的验证更新记录
如果单击垃圾邮件按钮,表单将提交一个标记,以将记录标记为已删除。 如果在这种情况下电子邮件地址不是有效的,则表单将不会提交,因为未传递模型中的验证集。有没有办法在运行中删除验证?
我已经研究过使用$this->validator()->remove('email');
,但这没用,因为在渲染视图之前已经设置了验证。
答案 0 :(得分:1)
为什么不在控制器上使用验证规则呢?
这样,您可以将规则留在模型上,但只使用条件为fullfiled
if ($this->ModelName->validates()) {
// it validated logic
} else {
// didn't validate logic
$errors = $this->ModelName->validationErrors;
}
或者您可以通过
禁用验证if ($this->ModelName->saveAll(
$this->request->data, array('validate' => false)
)) {
// saving without validation
}