我知道这个主题已经开放,但几个月之后,根本没有答案,当我尝试回答知道这位作者是否有任何解决方案时......我的评论被删除了。所以我想再次发布这个问题。
我正在使用我的管理SonataAdminBunbdle和SonataUserBundle。 除了一些特定的东西之外,一切都工作得很好。
现在,我的问题。我想覆盖默认的登录表单。 但是,即使我尝试的一切,也没有任何作用。
1)我试图覆盖FOSUserBundle登录表单,如official documentation中所述。
我输入了正确的路径
{% extends "FOSUserBundle::layout.html.twig" %}
{% block fos_user_content %}
AZERTY
{% endblock fos_user_content %}
完全删除了原始登录表单,但没有任何更改,我仍然拥有相同的默认登录表单。
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 %}
所以,最后我想覆盖这个特定文件,或者找到一种方法来更改配置文件中的模板路径。
任何人都已覆盖此登录表单模板吗?
答案 0 :(得分:8)
如果您将自定义login.html.twig
放入:
app/Resources/SonataUserBundle/views/Admin/Security
它会起作用。
您可以在Symfony中阅读有关覆盖模板的more。
答案 1 :(得分:1)
1 /好!我知道你做了几次搜索,但是你试过这个:
factory.setWsdlLocation("http://localhost:8123/SoapContext/SoapPort1");
根据你的评论,我没有看到这个解决方案。
更新:
Resources/
├── ApplicationSonataUserBundle
│ └── views
│ |
│ └── Security
│ └── login.html.twig
是一个扩展。我习惯用SonataMediaBundle做到这一点。
例如,在ApplicationSonataMediaBundle.php中:
ApplicationSonataUserBundle