覆盖默认的FOSUserBundle模板,没有效果

时间:2014-07-14 03:25:16

标签: php symfony override fosuserbundle

是的,我知道还有其他问题。我检查了每一个,但我没有得到我做错的事。

我自己的模板位于:

的src /砂砾/ GritWsBundle /资源/视图/ layoutBase.html.twig

其中包含(隐藏不必要的标记):

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <div class="container">
        {% block content %}
        {% endblock %}
        </div>
    </body>
</html>

然后,按照文档我创建了这个结构来覆盖FOSUserBundle模板:

的src /砂砾/ GritWsBundle /资源/ FOSUserBundle /视图/ layout.html.twig

在这个文件中,我正在扩展layoutBase.html.twig:

{% extends 'GritGritWsBundle::layoutBase.html.twig' %}

{% block content %}
    <div class="row">
        <div class="col-md-4 col-md-offset-4">
            <div class="login-panel panel panel-default">

                <div class="panel-heading">
                    <h3 class="panel-title">Please Sign In</h3>
                </div>

                <div class="panel-body">

                    {% block fos_user_content %}
                    {% endblock %}

                </div>
            </div>
        </div>
    </div>
{% endblock %}

我已经清除了缓存,已安装并“转储”资产。

不知怎的,它不起作用,没有生效。有人能帮助我吗?

2 个答案:

答案 0 :(得分:0)

要覆盖模板,您的文件路径和名称需要镜像您要覆盖的模板的路径和名称。从templateBase重命名为template

请务必在之后清除symfony缓存以查看结果

答案 1 :(得分:0)

您将模板放在错误的位置。正如documentation中所述,您需要将layout.html.twig放在app/Resources/FOSUserBundle/views/layout.html.twig(不在您的捆绑包内)。

如果要覆盖捆绑中的模板,则需要覆盖您的FOSUserBundle。您可以在link aboveSymfony official documentation上找到相关信息。