Zend表单setRequired(true)或addValidator(NotEmpty)

jbl*_*lue 12 php zend-framework zend-form

这些行为或输出之间是否有任何真正的区别.他们看起来像他们做同样的事情.

->addValidator('NotEmpty')   

->setRequired(true)
Run Code Online (Sandbox Code Playgroud)

rek*_*o_t 18

是的,有区别.如果不需要元素,即使您验证的数据中缺少整个值,它也会验证.只有在确定存在后,才会对注册的验证程序验证该值.NotEmpty验证器只有在字段存在时才会失败,但是为空.

此外,没有必要自己添加NotEmpty验证器,默认情况下Zend会自动为元素插入NotEmpty验证器(如果元素是必需的).所以有效地做->setRequired(true)就像做->setRequired(true)->addValidator('NotEmpty').您可以使用关闭此行为->setAutoInsertNotEmptyValidator(false).