ZF2 EmailAddress验证器

时间:2017-02-03 09:58:53

标签: php validation email zend-framework2

我正在通过工厂创建ZF2电子邮件地址验证器,该工厂有两部分,一部分检查电子邮件是否已在数据库中,两部分:验证电子邮件。 Prblem是我的NoObjectExists验证器工作得很好,但是实际的电子邮件地址验证器没有(验证器将“dsfsfhsadjkfnaskl”识别为有效的电子邮件)。这是我的代码,也许你们可以发现它有什么问题?

sqrt

1 个答案:

答案 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;