2013-01-12 62 views
0

我正在使用Zendframework 2与ZfcUser和ZfcUserDoctrineORM。 我用一些附加信息扩展了普通用户。ZFCUser扩展形式

现在我想调整registerForm。为此我创建这种形式在ZfcUser \表格文件夹:

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' 
     ), 
    )); 
    } 
} 

在下一步骤我改变适于在Module.php的getServiceConfig()函数在ZfcUser文件夹:

'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; 
      }, 

致电时此错误消息显示寄存器url:

Fatal error: Cannot redeclare class UserRegister in C:\xampp\htdocs\THWDiver\vendor\zf-commons\zfc-user\src\ZfcUser\Form\UserRegister.php on line 24

我在做什么错?

+0

您能否显示UserRegister.php的*完整*代码?似乎缺少一些东西(命名空间)。此外,不建议您将代码放入'ZfcUser'模块本身。很容易从'ZfcUser'模块扩展代码,并使用该代码而不是编辑'ZfcUser'的代码,从而使升级变得更加困难。 – kokx

+0

感谢您的帮助。我修复了文件的“使用”部分。我如何扩展ZfcUser模块? – Iceman

+0

我认为这将是值得一个单独的问题。 – kokx

回答

0

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