Поскольку на часть, включающую ошибку, здесь не было ответа, и мне пришлось копаться в коде FOSUserBundle, позвольте мне также добавить к этому сообщению, как добавить сообщения об ошибках в форму loginPartial.html.twig:
Посмотрите на файл /vendor/friendsofsymfony/user-bundle/Controller/SecurityController.php
Этот контроллер имеет loginAction, который создает переменную ошибки.Все, что вам нужно сделать в контроллере, который вы используете для визуализации ветки loginPartial, это добавить в этот контроллер следующий код:
$session = $request->getSession();
// get the error if any (works with forward and redirect -- see below)
if ($request->attributes->has(SecurityContextInterface::AUTHENTICATION_ERROR)) {
$error = $request->attributes->get(SecurityContextInterface::AUTHENTICATION_ERROR);
} elseif (null !== $session && $session->has(SecurityContextInterface::AUTHENTICATION_ERROR)) {
$error = $session->get(SecurityContextInterface::AUTHENTICATION_ERROR);
$session->remove(SecurityContextInterface::AUTHENTICATION_ERROR);
} else {
$error = null;
}
return $this->render('YourDemoBundle:Default:index.html.twig', ['error' => $error]);
В этом случае вы просто используете тот же код в вашем контроллере для генерации любогосообщения об ошибках входа в систему, т. е. неверный пароль и т. д.
Теперь в веточку, которая показывает форму, просто добавьте следующее: {% include 'YourDemoBundle: Security: loginPartial.html.twig'%}
в файле loginPartial.html.twig введите следующее:
{% block fos_user_content %}
{% if error %}
<div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}`Let the rest of the form be as is....and then endblock ofcourse..{% endblock fos_user_content %}`
Это должно сделать