Sonata Admin Bundle + Sonata用户捆绑包:覆盖登录表单

All*_*ste 1 symfony fosuserbundle sonata-admin sonata-user-bundle sonata

我知道这个主题已经开放,但几个月之后,根本没有答案,当我尝试回答知道这位作者是否有任何解决方案时......我的评论被删除了.所以我想再次发布这个问题.

我正在使用我的管理SonataAdminBunbdle和SonataUserBundle.除了一些特定的东西,一切都工作得很好.

现在,我的问题.我想覆盖默认的登录表单.但是,即使我尝试的一切,也没有任何作用.

1)我试图覆盖FOSUserBundle登录表单,如官方文档中所述.

我把这个文件放在正确的路径上

{% extends "FOSUserBundle::layout.html.twig" %}

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

完全删除了原始登录表单,但没有任何更改,我仍然拥有相同的默认登录表单.

2)对SonataAdminBundle使用相同的方法,但是对于登录表单模板没什么用.

3)然后再一次为SonataUserBundle,但我没有找到任何覆盖登录表单模板.

我没有解决方案,这就是我要求帮助的原因.我找到了如何通过直接修改我的供应商文件来更改登录表单:

// vendor/sonata-project/user-bundle/Resources/views/Admin/Security/login.html.twig    

{% extends base_template %}

{% block content %}
    <div class="connection">
        <form action="{{ path("sonata_user_admin_security_check") }}" method="post">

            {% if error %}
                <div class="alert alert-error">{{ error|trans({}, 'SonataUserBundle') }}</div>
            {% endif %}

            <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />

            <div class="control-group">
                <label for="username">{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}</label>

                <div class="controls">
                    <input type="text" id="username" name="_username" value="{{ last_username }}" class="big sonata-medium"/>
                </div>
            </div>

            <div class="control-group">
                <label for="password">{{ 'security.login.password'|trans({}, 'FOSUserBundle') }}</label>

                <div class="controls">
                    <input type="password" id="password" name="_password" class="big sonata-medium" />
                </div>
            </div>

            <div class="control-group">
               <label for="remember_me">
                    <input type="checkbox" id="remember_me" name="_remember_me" value="on" />
                    {{ 'security.login.remember_me'|trans({}, 'FOSUserBundle') }}
                </label>
            </div>

            <div class="form-actions">
                <input type="submit" class="btn btn-primary" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" />
            </div>
        </form>
    </div>
{% endblock content %}
Run Code Online (Sandbox Code Playgroud)

所以,最后我想覆盖这个特定的文件,或者找到一种方法来更改配置文件中的模板路径.

任何人都已覆盖此登录表单模板?

e1d*_*dar 8

如果您将自定义login.html.twig放入:

app/Resources/SonataUserBundle/views/Admin/Security

它会工作.

您可以在Symfony中阅读有关覆盖模板的更多信息.