0

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

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

$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. 我希望两者的答案都是一样的。

4

1 回答 1

0

目前,无法停止 Phalcon\Mvc\Model\Validator 中的验证,在 Phalcon\Validation 的情况下,您可以传递 'cancelOnFail' 作为参数,表示如果验证器具有该验证器,则必须停止验证链参数失败:

$v->add('email',new PresenceOf(['field'=>'email', 'cancelOnFail' => true]));
$v->add('email',new \Email(['field'=>'email']));
于 2013-04-29T03:00:32.150 回答