2014-03-30 2 views
0

난 그냥 fosuserbundle를 사용하는 방법을 배우고, 내가 지금 엔티티와 데이터베이스 필드 및에 "이름"열을 추가, 등록 양식은 다음과 같이 보여줍니다 :Symfony2 FosUserBundle 주문 등록 양식 필드

Email  :[_______________________________] 
Username :[_______________________________] 
Password :[_______________________________] 
Verification:[_______________________________] 
Name  :[_______________________________]<-name 

내 질문에 나중에 '이름, 필드'를 추가 한 이후로 이런 식으로 주문하는 법입니다.

Email  :[_______________________________] 
Name  :[_______________________________]<-order name here 
Username :[_______________________________] 
Password :[_______________________________] 
Verification:[_______________________________] 

데이터베이스 테이블 또는 양식 공장에서 주문해야합니까?

덕분에,

응용 프로그램/자원/FOSUserBundle/조회/등록/register_content.html.twig에
+0

, 나는 데이터베이스에 "종류"열을 추가 한 다음 일을 정렬 할 것을 사용합니다. 그러나 당신은 단지 몇 가지 값이있는 경우 귀하의 상황에 과잉 될 수 있습니다 (어떤 경우에는 [this] (http://stackoverflow.com/questions/8322849/mysql-order-by-specific-id-values) 할 수 있습니다)). – Mike

답변

1

복사 공급 업체/friendsofsymfony/사용자 번들/FOS는/UserBundle/자원/조회/등록/register_content.html.twig

공급 업체/friendsofsymfony/사용자 번들/FOS/UserBundle/자원/조회/등록/register_content.html.twig

<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register"> 
    {{ form_widget(form) }} 
    <div> 
     <input type="submit" value="{{ 'registration.submit'|trans({}, 'FOSUserBundle') }}" /> 
    </div> 
</form> 

응용 프로그램/자원/FOSUserBundle/조회/등록/register_content :와 같은 변경 .html.twig

<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register"> 
    {{ form_start(form) }} 
    {{ form_errors(form) }} 

    {{ form_widget(form.email) }} 
    {{ form_widget(form.name) }} 
    {{ form_widget(form.username) }} 
    {{ form_widget(form.plainPassword.first) }} 
    {{ form_widget(form.plainPassword.second) }} 

    {{ form_end(form) }} 
    <input type="submit" value="{{ 'registration.submit'|trans({}, 'FOSUserBundle') }}" /> 
</form> 
+1

각 필드/항목은 form_row가 아니어야합니다. form_widget –

+0

제출 입력 태그 뒤에 {{form_end (form)}}이 와야합니다. –

0

@ repincln의 대답으로하는 한 가지 방법. 그러나 다른 방법은 필드 빌더를 업데이트하는 것입니다. 이미 필드를 추가하도록 확장했기 때문입니다. 나는 건물을 짓는 동안 양식을 재배치하는 것이 훨씬 쉽고 깨끗하다고 ​​생각합니다. FOSUserBundle Documentation

public function buildForm(FormBuilderInterface $builder, array $options){ 

    $builder 
     ->add('email', 'email', array('label' => 'form.email', 'translation_domain' => 'FOSUserBundle')) 
     ->add('name') 
     ->add('username', null, array('label' => 'form.username', 'translation_domain' => 'FOSUserBundle')) 
     ->add('plainPassword', 'repeated', array(
      'type' => 'password', 
      'options' => array('translation_domain' => 'FOSUserBundle'), 
      'first_options' => array('label' => 'form.password'), 
      'second_options' => array('label' => 'form.password_confirmation'), 
      'invalid_message' => 'fos_user.password.mismatch', 
     )) 
     ; 
} 

원하는 것을 사용하여 양식을 재정의했다고 가정합니다.

해피 코딩 ... 일반적으로

+0

어떻게 든 나에게 도움이되지 않습니다 ... – Deskin

+0

왜 투표가 실패했는지 모릅니다 !! Nob : fos userbundle 문서가 이제 symfony 사이트로 옮겨졌습니다. [FOSUserBundle Documentation] (https://symfony.com/doc/master/bundles/FOSUserBundle/overriding_forms.html) – xiidea