ZFCUser扩展表单

时间:2013-01-12 16:13:32

标签: zend-framework2 zfcuser

我正在使用Zendframework 2和ZfcUser以及ZfcUserDoctrineORM。 我向普通用户扩展了一些额外的信息。

现在我想改编registerForm。因此我在ZfcUser \ Form文件夹中创建了这个表单:

class UserRegister extends ZfcUser\Form\Register {
  public function init(){
    $this->add(array(
        'name' => 'firstName',
        'options' => array(
            'label' => 'First Name',
        ),
        'attributes' => array(
            'type' => 'text'
        ),
    ));

    $this->add(array(
        'name' => 'name',
        'options' => array(
            'label' => 'Last Name',
        ),
        'attributes' => array(
            'type' => 'text'
        ),
    ));
  }
}

在下一步中,我更改了ZfcUser文件夹中Module.php中的getServiceConfig()函数:

'zfcuser_register_form' => function ($sm) {
                $options = $sm->get('zfcuser_module_options');
                $form = new Form\UserRegister(null, $options);
                //$form->setCaptchaElement($sm->get('zfcuser_captcha_element'));
                $form->setInputFilter(new Form\RegisterFilter(
                    new Validator\NoRecordExists(array(
                        'mapper' => $sm->get('zfcuser_user_mapper'),
                        'key'    => 'email'
                    )),
                    new Validator\NoRecordExists(array(
                        'mapper' => $sm->get('zfcuser_user_mapper'),
                        'key'    => 'username'
                    )),
                    $options
                ));
                return $form;
            },

调用register url时会显示以下错误消息:

  

致命错误:无法在第24行的C:\ xampp \ htdocs \ THWDiver \ vendor \ zf-commons \ zfc-user \ src \ ZfcUser \ Form \ UserRegister.php中重新声明类UserRegister

我做错了什么?

2 个答案:

答案 0 :(得分:0)

意识到这是一个老问题,但只是偶然发现它。您需要编辑实体模块的引导程序并附加到' ZfcUser \ Form \ Register'在' init'。

我在这里有一篇博客文章详细介绍了解决方案: http://circlical.com/blog/2013/4/1/l5wftnf3p7oks5561bohmb9vkpasp6

希望它可以帮到你!

答案 1 :(得分:0)

我认为答案是覆盖服务工厂“zfcuser_register_form”,并在其中声明自己的RegisterForm。