覆盖FOSUserBundle登录表单

jri*_*ggs 12 symfony fosuserbundle

我遵循以下文档: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's templates
    public function getParent()
    {
        return 'FOSUserBundle';
    }

}
Run Code Online (Sandbox Code Playgroud)

在我的包中,我添加了以下文件

MyBundle
      \Resources
               \views
                     \Security
                      login.html.twig
Run Code Online (Sandbox Code Playgroud)

匹配文档中提到的F​​OS捆绑结构

login.html.twig

{% extends 'AnotherBundle::layout.html.twig' %}

{% block title %}Log In{% endblock %}

{% block content %}
    {% block fos_user_content %}{% endblock %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

当我进入登录页面时,我的标题加载正常,但是没有登录表单,出错了什么?

小智 17

因为您没有编写呈现登录表单的代码.

打开/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/views/Security/login.html.twig,将fos_user_content块中的代码复制到您的自定义login.html.twig,重新加载页面,然后您将看到该表单.

如果要自定义表单,请重写您复制的代码.