覆盖FOS Bundle

时间:2014-11-14 16:52:44

标签: php symfony fosuserbundle

我尝试覆盖FOS捆绑包。

要做到这一点,我有:

我在安装FOS时创建的UserBundle。它有我的User.php文件。

UserBundle.php:

<?php

namespace gestEntrSym\UserBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class UserBundle extends Bundle
{
    public function getParent() {
    return 'FOSUserBundle';
    }
}    

视图/默认/ layout.html.twig

{% extends '::base.html.twig' %}

{% block title %}Acme Demo Application{% endblock %}

{% block content %}
    {{ block('fos_user_content') }}
{% endblock %}

然后我有app / Ressources / Views / base.html.twig

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
    </head>
    <body>
        <div>
            {% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
                {{ 'layout.logged_in_as'|trans({'%username%': app.user.username}, 'FOSUserBundle') }} |
                <a href="{{ path('fos_user_security_logout') }}">
                    {{ 'layout.logout'|trans({}, 'FOSUserBundle') }}
                </a>
            {% else %}
                <a href="{{ path('fos_user_security_login') }}">{{ 'layout.login'|trans({}, 'FOSUserBundle') }}</a>
            {% endif %}
        </div>

        {% for type, messages in app.session.flashBag.all %}
            {% for message in messages %}
                <div class="{{ type }}">
                    {{ message|trans({}, 'FOSUserBundle') }}
                </div>
            {% endfor %}
        {% endfor %}

        <div>aaa
            {{ block('fos_user_content') }}
        </div>
    </body>
</html>

我现在在页面中只有一个链接“Connexion”,它只链接到页面登录。我希望在布局页面中包含所有输入。

我该怎么做?

由于 最好的问候

1 个答案:

答案 0 :(得分:0)

如果要覆盖登录模板,请创建文件夹

  

应用程序/资源/ FosUserBundle

然后尊重供应商文件夹的结构,你不会这样做,所以你的覆盖登录将在这里:

  

应用程序/资源/ FosUserBundle /查看/安全/ login.html.twig

然后,如果您想将该模板包含在base中,

{% include('FOSUserBundle:Security:login.html.twig') %}