0

这是 FOSUserBundle 的注册表单的样子:

<form action="/Symfony/web/signup/" method="POST" class="fos_user_registration_register">
<div id="fos_user_registration_form">
    <input type="hidden" id="fos_user_registration_form__token" name="fos_user_registration_form[_token]" value="c248f3ef17b082803ae9948c03d137c380f0dc24"/>
    <div>
        <label for="fos_user_registration_form_username">Username:</label><input type="text" id="fos_user_registration_form_username" name="fos_user_registration_form[username]" required="required" maxlength="255" pattern=".{2,255}"/>
    </div>
    <div>
        <label for="fos_user_registration_form_email">Email:</label><input type="email" id="fos_user_registration_form_email" name="fos_user_registration_form[email]" required="required"/>
    </div>
    <div>
        <label for="fos_user_registration_form_plainPassword_first">Password:</label><input type="password" id="fos_user_registration_form_plainPassword_first" name="fos_user_registration_form[plainPassword][first]" required="required"/>
    </div>
    <div>
        <label for="fos_user_registration_form_plainPassword_second">Verification:</label><input type="password" id="fos_user_registration_form_plainPassword_second" name="fos_user_registration_form[plainPassword][second]" required="required"/>
    </div>
</div>
<div>
    <input type="submit" value="Register"/>
</div>

所以,如你所见,

<input type="email" id="fos_user_registration_form_email" name="fos_user_registration_form[email]"

主要问题:如何将 id 更改为 id="email" 之类的名称,并将名称更改为 name="email" 之类的名称?显然,它必须起作用。

在这里你可以看到:https ://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/views/Registration/register_content.html.twig {{ form_widget(form) }},但我无法追踪到哪里它去了。我还假设必须编辑 RegistrationFormHandler 以支持这些参数。

4

1 回答 1

0

更改 RegistrationFormType 类中的 buildForm 函数:

# FOSUserBundle/Form/Type/RegistrationFormType.php

class RegistrationController extends ContainerAware
{

   // ...

   public function getName()
   {
       return 'fos_user_registration';
   }

}

将 fos_user_registration更改为您想要的任何内容。

于 2012-02-22T14:45:33.733 回答