C4P*_*4PO 1 validation zend-framework
我想为登录脚本创建一个表单字段,允许输入用户名或电子邮件地址.
我有一个验证器
$loginName = new Zend_Form_Element_Text('loginName');
$loginName->addValidators(array('Alnum', 'EmailAddress');
Run Code Online (Sandbox Code Playgroud)
哪个不起作用(因为它似乎验证了Alnum和EmailAddress).我想验证Alnum OR EmailAddress.
有关如何做到这一点的任何建议?
你有两个选择.您可以使用正则表达式验证程序,也可以编写自定义验证程序,该验证程序本身使用Alnum和电子邮件验证程序.
http://framework.zend.com/manual/en/zend.validate.writing_validators.html
第二个选项看起来像这样:
class My_Validate_Field extends Zend_Validate_Abstract
{
protected $_messageTemplates = array(
'alnumemail' => "'%value%' is not an alphanumeric string or email address"
);
public function isValid($value)
{
$alnum = new \Zend_Validate_Alnum();
$email = new \Zend_Validate_EmailAddress();
$valid = $alnum->isValid( $value ) || $email->isValid( $value);
if( !$valid ) {
$this->_error();
}
return $valid;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
666 次 |
最近记录: |