我正在尝试覆盖FOSUserBundle
的登录和注册模板,但我无法使其工作,我正在做文档所说的,但没有任何反应我只能看到默认模板:S
这是我的app\Resources\FOSUserBundle\views\Security\login.html.twig
{% extends "FOSUserBundle::layout.html.twig" %}
{% block fos_user_content %}
{% if error %}
<div>{{ error|trans({}, 'FOSUserBundle') }}</div>
{% endif %}
<p>Login!</p>
<form action="{{ path("fos_user_security_check") }}" method="post">
<input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
<label for="username">{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" required="required" />
<label for="password">{{ 'security.login.password'|trans({}, 'FOSUserBundle') }}</label>
<input type="password" id="password" name="_password" required="required" />
<input type="checkbox" id="remember_me" name="_remember_me" value="on" />
<label for="remember_me">{{ 'security.login.remember_me'|trans({}, 'FOSUserBundle') }}</label>
<input type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" />
</form>
{% endblock fos_user_content %}
这是我的app\Resources\FOSUserBundle\views\layout.html.twig
{% extends '::base.html.twig' %}
{% block body %}
<div class="container">
{% for type, messages in app.session.flashbag.all() %}
{% for key, message in messages %}
<div class="flash-{{ type }}">
{{ message|trans({}, 'FOSUserBundle') }}
</div>
{% endfor %}
{% endfor %}
{% block fos_user_content %}{% endblock %}
</div>
{% endblock %}
答案 0 :(得分:4)
确保在userbundle文件中扩展fosUserBundle:
<?php
namespace Radsphere\UserBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class RadsphereUserBundle extends Bundle
{
public function getParent()
{
return 'FOSUserBundle';
}
}
此外,请确保您正在扩展的树枝模板存在于与FosUserBundle相同的文件夹结构中: 例如,我扩展了login.html.twig,其位置位于
src/Radsphere/UserBundle/Resources/views/security/login.html.twig
答案 1 :(得分:2)
只是为了给那些可能会在这里结束的人提供一些选择,根据Sam Dufel的评论,这是由于缓存文件夹未完全清除(对我而言)(本身是由流浪者引起的问题)共享文件夹和权限)
手动删除app / cache文件夹会修复它。