我正在通过工厂创建ZF2电子邮件地址验证器,该工厂有两部分,一部分检查电子邮件是否已在数据库中,两部分:验证电子邮件。 Prblem是我的NoObjectExists验证器工作得很好,但是实际的电子邮件地址验证器没有(验证器将“dsfsfhsadjkfnaskl”识别为有效的电子邮件)。这是我的代码,也许你们可以发现它有什么问题?
sqrt
答案 0 :(得分:2)
数组嵌套出错。您没有关闭包含NoObjectExists验证器,因此电子邮件验证器嵌套在里面。
尝试以下方法:
$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;