2016-11-06 4 views

ответ

1

Official docs для спасения!

Например, если вы хотите добавить name поле в вашей регистрационной форме:

<?php 
// src/AppBundle/Form/RegistrationType.php 

namespace AppBundle\Form; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 

class RegistrationType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('name'); 
    } 

    public function getParent() 
    { 
     return 'FOS\UserBundle\Form\Type\RegistrationFormType'; 

     // Or for Symfony < 2.8 
     // return 'fos_user_registration'; 
    } 

    public function getBlockPrefix() 
    { 
     return 'app_user_registration'; 
    } 

    // For Symfony 2.x 
    public function getName() 
    { 
     return $this->getBlockPrefix(); 
    } 
} 

Существует еще один ключевой пункт есть:

  • If you don't want to reuse the fields added in FOSUserBundle by default, you can omit the getParent method and configure all fields yourself.

Таким образом, вы можете опустите метод getParent и вместо этого добавьте все нужные поля в методе buildForm.

+0

Большое спасибо, я думал, что будет еще немного приятнее и проще, то просто восстановить формировать свою личность. Некоторое unset ('password2') – fdrv

+0

FosUserBundle создает событие в начале процесса регистрации. Мероприятие - FOSUserEvents :: REGISTRATION_INITIALIZE. Вы можете создать прослушиватель событий и сделать необходимые манипуляции с предоставленными данными, например, создать второе поле формы пароля и заполнить его копией отправленного пароля. –

0

Так что есть более простой способ. ....

class ProfileFormType extends AbstractType 
{ 
    .... 

    public function getParent() 
    { 
     return 'FOS\UserBundle\Form\Type\ProfileFormType'; 
    } 

$ builder-> удалить ('электронной почты');

https://stackoverflow.com/a/39282012/2309309

Смежные вопросы