Переопределение формы входа в систему 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 %}