问题 覆盖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';
    }

}

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

MyBundle
      \Resources
               \views
                     \Security
                      login.html.twig

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

login.html.twig

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

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

{% block content %}
    {% block fos_user_content %}{% endblock %}
{% endblock %}

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


9403
2017-11-05 15:38


起源

如果有人点击这个:文档不在 symfony.com/doc/master/bundles/FOSUserBundle/...。 - chteuchteu
你可以找到2个详细的例子 在这个答案 - Zoltán Süle


答案:


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

打开 /vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/views/Security/login.html.twig,复制代码 fos_user_content 阻止您的自定义 login.html.twig,重新加载页面,然后你会看到表格。

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


16
2017-11-06 02:53



谢谢,这就是问题所在。我还覆盖了布局文件MyBundle \ Resources \ view \ layout.html.twig并扩展了我的基本布局,所以我也加载了我的主题 - jriggs


当你有嵌套块时,你需要明确告诉你正在关闭哪个块。所以,试试这个:

{% block content %}
    {% block fos_user_content %}{% endblock fos_user_content %}
{% endblock content %}

-3
2017-11-05 17:14



不需要,树枝知道哪个块必须关闭 - ruudy