【问题标题】:Preventing more validator阻止更多验证者
【发布时间】:2013-04-27 13:25:36
【问题描述】:

当同一字段上的其他验证器失败时,如何停止更多验证器?

如果下面的代码我不希望电子邮件为空时执行电子邮件验证器。

$v=new Phalcon\Validation();

$v->add('email',new Phalcon\Validation\Validator\PresenceOf(['field'=>'email']));
$v->add('email',new Phalcon\Validation\Validator\Email(['field'=>'email']));

var_dump($v->validate([]));

如何防止验证空字段?我遵循代码,仅在设置电子邮件时才需要验证。

$v=new Phalcon\Validation();

$v->add('email',new Phalcon\Validation\Validator\PresenceOf(['field'=>'email']));

var_dump($v->validate([]));

实际上我使用Class Phalcon\Mvc\Model\Validator,但示例使用Class Phalcon\Validation\Validator。我希望两者的答案都是一样的。

【问题讨论】:

    标签: validation phalcon


    【解决方案1】:

    此时,在 Phalcon\Mvc\Model\Validator 中没有办法停止验证,在 Phalcon\Validation 的情况下,您可以传递 'cancelOnFail' 作为参数来指示它必须停止验证链,如果带有该参数的验证器失败:

    $v->add('email',new PresenceOf(['field'=>'email', 'cancelOnFail' => true]));
    $v->add('email',new \Email(['field'=>'email']));
    

    【讨论】:

    • 我希望我们将来能看到一个可重用的验证类。
    • 如何防止验证空字段?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 2016-08-01
    • 2017-03-03
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    相关资源
    最近更新 更多