1

我有这堂课:

<?php
class RegisterFilter extends InputFilter
{
    public function __construct()
    {
        $this->add(array(
            'name'       => 'email1',
            'required'   => true,
            'validators' => array(
                array(
                    'name'    => 'EmailAddress',
                    'options' => array(
                        'domain' => true,
                    ),
                ),
                array(
                      'name'    => 'Identical',
                      'options' => array(
                        'token' => 'email2',
                    ),
                ),
                array(
                      'name'    => 'Db\NoRecordExists',
                      'options' => array(
                        'table' => 'user',
                        'field' => 'email',
                        'messages' => array(
                            'recordFound'   => "Email already exist ... ! <br>",  
                        ),
                    ),
                ),
            ),
        ));
    }
}
?>

我收到此错误:不存在数据库适配器。任何想法为什么会发生这种情况?

4

1 回答 1

0

如果您阅读有关Zend\Validator\Db\Record*. 给定的错误消息正是它所说的。您没有在 Validator 中提供 DB-Adapter。

来自文档:

$validator = new Zend\Validator\Db\RecordExists(
    array(
        'table'   => 'users',
        'field'   => 'emailaddress',
        'adapter' => $dbAdapter
    )
);

如果您想了解如何将 DB-Adapter 放入您的表单,我已经写了一篇关于上述主题的博客文章。

于 2013-10-05T10:18:43.977 回答