删除表单提交上的模型验证

时间:2014-11-11 18:50:00

标签: validation cakephp

我在cakephp 2.5中有一个表单。 如果单击了保存按钮,则会使用所有适用的验证更新记录

如果单击垃圾邮件按钮,表单将提交一个标记,以将记录标记为已删除。 如果在这种情况下电子邮件地址不是有效的,则表单将不会提交,因为未传递模型中的验证集。有没有办法在运行中删除验证?

我已经研究过使用$this->validator()->remove('email');,但这没用,因为在渲染视图之前已经设置了验证。

1 个答案:

答案 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
}