2013-01-12 2 views
0

저는 ZfcUser 및 ZfcUserDoctrineORM과 함께 Zendframework 2를 사용하고 있습니다. 일반 사용자를 몇 가지 추가 정보로 확장했습니다.ZFCUser 연장 양식

이제 registerForm을 수정하고 싶습니다. 그 때문에 전 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; 
      }, 

호출 :

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

I 변경된 다음 단계를 ZfcUser 폴더에 Module.php에서 getServiceConfig() 함수를 적합 register 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

깨달음은 이전 질문 이었지만 그저 우연히 발견되었습니다. Entity 모듈의 부트 스트랩을 편집하고 'init'의 'ZfcUser \ Form \ Register'에 접속해야합니다.

나는 깊이 솔루션을 자세히 설명이 여기에 블로그 기사를 가지고 : http://circlical.com/blog/2013/4/1/l5wftnf3p7oks5561bohmb9vkpasp6

는 당신 도움이되기를 바랍니다!

0

나는 대답은 서비스 팩토리 "zfcuser_register_form"을 재정의하고 그 내부에 자신의 RegisterForm을 선언하는 것이라고 생각한다.