Zend表单:如何创建一个"创建帐户表单"来检查唯一的用户名?

And*_*rew 4 ajax jquery zend-framework zend-form

我有一个用户可以创建帐户的表单.用户名列在数据库中是唯一的.如果用户尝试创建具有重复用户名的帐户,则会引发异常.这最终看起来很难看.

我正在考虑在插入数据库之前进行某种检查(可能使用ajax)以查看是否已经使用了所需的用户名.如果事实证明已经使用了用户名,我想在表单上设置一个错误状态的用户名字段,并指定要显示的错误消息.

我怎样才能做到这一点?

更新: Zend_Validator_Db_NoRecordExists适用于此类事情.这是我最终得到的:

// inside my create account form 
$this->addElement('text', 'username', array(
    'label'      => 'Username:',
    'required'   => true,
    'filters'    => array('StringTrim'),
    'validators' => array(
        array('StringLength', false, array(2, 50)),
        array('Db_NoRecordExists', false, array(
            'table' => 'users',
            'field' => 'username'
        ))
    )
));
Run Code Online (Sandbox Code Playgroud)