簡體   English   中英

Symfony2 FosUserBundle訂購登記表字段

[英]Symfony2 FosUserBundle ordering registration form fields

我剛剛學習了如何使用fosuserbundle,我剛剛在實體和數據庫字段中添加了“名稱”列,現在,注冊表單如下所示:

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

我的問題是,由於我后來添加了“名稱,字段”,因此如何使它像這樣排序。

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

我應該從數據庫表還是從Form工廠訂購它?

謝謝,

將vendor / symfony / user-bundle / FOS / UserBundle / Resources / views / Registration / register_content.html.twig復制到app / Resources / FOSUserBundle / views / Registration / register_content.html.twig並進行以下更改:

供應商/ symfony /用戶捆綁/用戶捆綁/ 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>

app / Resources / FOSUserBundle / views / Registration / 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>

作為@repincln的答案的一種方式。 但是其他方法是更新表單構建器,因為您已經擴展了添加字段的能力。 我認為,如果您只是在構建表單時重新安排表單,那會更加輕松/整潔。 假設您已經按照FOSUserBundle文檔覆蓋了表格

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

使用您喜歡的那個。

快樂編碼...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM