Мне нужно разместить на одной странице форму входа и форму регистрации. Я использую Symfony 3.2 и пользовательский пакет FOS.
Я нашел это: Как объединить логин и зарегистрируйте форму в одном шаблоне на FOSUserBundle
Это был мой первый подход, но есть проблема. При ошибке проверки страница перенаправляется на другой маршрут (с отображением только шаблона отправленной формы). Проблема в том, что SecurityController и RegistrationController не знают о контроллере, который отображает оба контроллера FOS в Twig, они просто отображают шаблон формы. При таком подходе я не могу переопределить шаблон, отображаемый контроллерами fos, для отображения основного шаблона, потому что это приведет к бесконечной рекурсии.
Я попытался переопределить контроллеры fos, чтобы выполнить перенаправление при ошибке проверки формы, но перенаправление приводит к потере сообщений проверки.
Я также попытался перенаправить запрос как в fos SecurityController, так и в RegistrationController (например: http://symfony.com/doc/current/controller/forwarding.html ), но для проверки входа в систему я получаю:
RuntimeException 'Вы должны настроить путь проверки для обработки брандмауэром, используя form_login в конфигурации вашего брандмауэра безопасности.'.
Он уже настроен и работает, но пересылка запроса непосредственно на контроллер, кажется, ломает его (я не мог понять, как на самом деле обрабатывается проверка входа, поскольку метод проверки возвращает только исключение времени выполнения)
Последнее решение, о котором я мог подумать, это создать обе формы в новом контроллере, но я не знаю, как вызвать проверку входа пользователя fos вручную (для регистрации я мог бы просто скопировать все registerAction из RegistrationController).
Спасибо за ваше время.