Symfony fosuserbundle добавить объект учетной записи для лица

У меня есть проект Symfony с FOSUserBundle, я расширил FormType в своем личном пакете после этого руководства « http://symfony.com/doc/master/bundles/FOSUserBundle/overriding_forms.html »

Я создал объект Person с именем, фамилией, адресом …, создал свой FormType следующим образом:

public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('firstName', TextType::class) ->add('lastName', TextType::class) ->add('adress', TextType::class) ->add('account', AccountType::class) ; } 

Объект Account является классом пользователя для FOSUserBundle

Затем я сгенерировал CRUD для Person, newAction () выглядит так:

 public function newAction(Request $request) { $person = new Person(); $form = $this->createForm('AppBundle\Form\PersonType', $person); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $person->getAccount()->setEnabled(1); //i'm doing this because it's not automatic $em->persist($person->getAccount()); $em->persist($person); $em->flush($person); return $this->redirectToRoute('fos_user_security_login'); // redirecting to the login page because it's not done automatically } return $this->render('person/new.html.twig', array( 'person' => $person, 'form' => $form->createView(), )); } 

У двух сущностей есть отношения OneToOne, причем этот код они сохраняются в базе данных, и я могу использовать имя пользователя и пароль для входа в систему

Вот моя конфигурация FOSUerBundle:

 fos_user: db_driver: orm firewall_name: main user_class: AppBundle\Entity\Account from_email: address: "%mailer_user%" sender_name: "%mailer_user%" registration: form: type: AppBundle\Form\AccountType 

Я хочу, чтобы пользователь автоматически регистрировался после регистрации, как это происходит при использовании регистрации по умолчанию FOSUserBundle, кто-нибудь понял, как это сделать?

Я пробовал много всего, но не успел

Спасибо за ваши ответы

Related of "Symfony fosuserbundle добавить объект учетной записи для лица"

Мне удалось войти с моего контроллера с помощью объекта $ person-> getAccount ():

Все, что мне нужно сделать, это отправить событие REGISTRATION_COMPLETED, как в контроллере по умолчанию: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Controller/RegistrationController.php#L78

Просто скопировал код на мой контроллер

Это приведет к аутентификации: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/EventListener/AuthenticationListener.php