Изменить параметры регистрации POST в Symfony2 FOSUserBundle? - PullRequest
0 голосов
/ 22 января 2012

Вот так выглядит форма регистрации 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 = "email", а также имя на что-то вроде name = "email"? И это должно работать, очевидно.

Здесь вы можете увидеть: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/views/Registration/register_content.html.twig {{form_widget (form)}}, но я не могу проследить это до того места, куда оно идет. Я также предполагаю, что RegistrationFormHandler придется отредактировать для поддержки этих параметров.

1 Ответ

0 голосов
/ 22 февраля 2012

Измените функцию buildForm в классе RegistrationFormType:

# FOSUserBundle/Form/Type/RegistrationFormType.php

class RegistrationController extends ContainerAware
{

   // ...

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

}

Измените fos_user_registration на все, что вы хотите.

...