Переопределение формы входа в систему FOSUserBundle
Im, следуя приведенной здесь документации: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_templates.rst
Я решил создать шаблон дочернего пакета и переопределить его, поэтому в моем пакете я
class MyBundle extends Bundle
{
//declare bundle as a child of the FOSUserBundle so we can override the parent bundle templates
public function getParent()
{
return 'FOSUserBundle';
}
}
В моем пакете я добавил следующие файлы
MyBundle
\Resources
\views
\Security
login.html.twig
Соответствие структуры пакета FOS, как указано в документации
login.html.twig
{% extends 'AnotherBundle::layout.html.twig' %}
{% block title %}Log In{% endblock %}
{% block content %}
{% block fos_user_content %}{% endblock %}
{% endblock %}
Когда я перехожу на страницу входа, мой заголовок загружается нормально, но нет формы входа в систему, что я делаю неправильно?
Ответы
Ответ 1
Потому что вы не написали код, отображающий форму входа.
откройте /vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/views/Security/login.html.twig
, скопируйте код в блоке fos_user_content
в свой пользовательский login.html.twig
, перезагрузите страницу, затем вы увидите форму.
Если вы хотите настроить форму, перепишите код, который вы скопировали.
Ответ 2
Когда у вас есть вложенные блоки, вам нужно явно указать, какой блок вы закрываете. Итак, попробуйте следующее:
{% block content %}
{% block fos_user_content %}{% endblock fos_user_content %}
{% endblock content %}