2013-04-27 51 views
0

如果在同一字段上的其他驗證程序失敗時如何停止更多驗證程序?防止更多驗證程序

如果下面的代碼我不想在電子郵件爲空時執行Email驗證程序。

$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。兩個人的答案都一樣。

回答

0

此時,在Phalcon \ Mvc \ Model \ Validator中無法停止驗證,在Phalcon \ Validation的情況下,您可以傳遞'cancelOnFail'作爲參數以表明它必須停止驗證鏈if具有該參數的驗證程序將失敗:

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

我希望我們在將來會看到一個可重用的驗證類。 – PHPst 2013-04-29 08:48:32

+0

如何防止驗證空字段? – PHPst 2013-04-29 18:11:39