ZF2 电子邮件地址验证器
ZF2 EmailAddress validator
我正在通过包含两个部分的工厂创建 ZF2 电子邮件地址验证器,一个检查 email 是否已经在数据库中,两个:验证电子邮件。
问题是我的 NoObjectExists 验证器工作得很好,但实际电子邮件地址验证器没有(验证器将 "dsfsfhsadjkfnaskl" 识别为有效电子邮件)。这是我的代码,也许你们能看出它有什么问题?
$factory = new \Zend\InputFilter\Factory();
$input = $factory->createInput(array(
'name' => 'email',
'required' => false,
'filters' => array(
0 => array(
'name' => 'Zend\Filter\StringTrim',
'options' => array(),
),
),
'validators' => array(
0 => array(
'name' => '\DoctrineModule\Validator\NoObjectExists',
'options' => array(
'object_repository' => $this,
'fields' => array('email'),
),
1 => array(
'name' => '\Zend\Validator\EmailAddress',
'options' => array(
'allow' => \Zend\Validator\Hostname::ALLOW_DNS,
'domain' => true,
),
),
),
),
));
return $input;
您的数组嵌套有误。您没有关闭包含 NoObjectExists 验证器的内容,因此 Email 验证器嵌套在其中。
尝试以下操作:
$factory = new \Zend\InputFilter\Factory();
$input = $factory->createInput(array(
'name' => 'email',
'required' => false,
'filters' => array(
0 => array(
'name' => 'Zend\Filter\StringTrim',
'options' => array(),
),
),
'validators' => array(
0 => array(
'name' => '\DoctrineModule\Validator\NoObjectExists',
'options' => array(
'object_repository' => $this,
'fields' => array('email'),
),
),
1 => array(
'name' => '\Zend\Validator\EmailAddress',
'options' => array(
'allow' => \Zend\Validator\Hostname::ALLOW_DNS,
'domain' => true,
),
),
),
));
return $input;
我正在通过包含两个部分的工厂创建 ZF2 电子邮件地址验证器,一个检查 email 是否已经在数据库中,两个:验证电子邮件。 问题是我的 NoObjectExists 验证器工作得很好,但实际电子邮件地址验证器没有(验证器将 "dsfsfhsadjkfnaskl" 识别为有效电子邮件)。这是我的代码,也许你们能看出它有什么问题?
$factory = new \Zend\InputFilter\Factory();
$input = $factory->createInput(array(
'name' => 'email',
'required' => false,
'filters' => array(
0 => array(
'name' => 'Zend\Filter\StringTrim',
'options' => array(),
),
),
'validators' => array(
0 => array(
'name' => '\DoctrineModule\Validator\NoObjectExists',
'options' => array(
'object_repository' => $this,
'fields' => array('email'),
),
1 => array(
'name' => '\Zend\Validator\EmailAddress',
'options' => array(
'allow' => \Zend\Validator\Hostname::ALLOW_DNS,
'domain' => true,
),
),
),
),
));
return $input;
您的数组嵌套有误。您没有关闭包含 NoObjectExists 验证器的内容,因此 Email 验证器嵌套在其中。
尝试以下操作:
$factory = new \Zend\InputFilter\Factory();
$input = $factory->createInput(array(
'name' => 'email',
'required' => false,
'filters' => array(
0 => array(
'name' => 'Zend\Filter\StringTrim',
'options' => array(),
),
),
'validators' => array(
0 => array(
'name' => '\DoctrineModule\Validator\NoObjectExists',
'options' => array(
'object_repository' => $this,
'fields' => array('email'),
),
),
1 => array(
'name' => '\Zend\Validator\EmailAddress',
'options' => array(
'allow' => \Zend\Validator\Hostname::ALLOW_DNS,
'domain' => true,
),
),
),
));
return $input;