我在Symfony应用程序中使用FOSUserBundle。一切正常但我想知道如何自定义捆绑包提供的表单的呈现。
我已成功自定义登录表单,但我找不到自定义方式,例如changePassword.html.twig
。
我已经检查ChangePasswordFormType.php
以查看我是否可以获取表单的不同字段,但我一定错过了。
例如在我的FOSUserBundle login.html.twig
中:
<form class="form-group-lg" action="{{ path("fos_user_security_check") }}" method="post">
<input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
<fieldset>
{% if error %}
<div class="row">
<div class="alert alert-danger" role="alert">{{ error|trans({}, 'FOSUserBundle') }}</div>
</div>
{% endif %}
<div class="row">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
<input class="form-control" for="username" placeholder="{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}" type="text" id="username" name="_username" value="{{ last_username }}" required="required" />
</div>
</div>
<div class="row">
</div>
<br>
<div class="row">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
<input class="form-control" for="password" placeholder="{{ 'security.login.password'|trans({}, 'FOSUserBundle') }}" type="password" id="password" name="_password" required="required" />
</div>
<p class="text-right"> <a href={{ path('fos_user_resetting_request') }}> Mot de passe oublié ?</a></p>
</div>
<div class="checkbox">
<label>
<input type="checkbox" for="remember_me"/>{{ 'security.login.remember_me'|trans({}, 'FOSUserBundle') }}
</label>
</div>
<input class="btn btn-lg btn-primary btn-block" type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" />
</fieldset>
</form>
我正在寻找{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}
使用与FOSUserBundle
相同的语法来获取class Sample1 {
private StreamReader sr;
public Sample1(string file) : sr(new StreamReader(file)) { }
public void Close() { sr.Close(); }
public string NextLine() { return sr.ReadLine(); }
}
提供的其他模板。
如果有人已经这样做了,我想知道你是怎么做到的。 感谢。
答案 0 :(得分:3)
FOSUserBundle模板位于:vendor/friendsofsymfony/user-bundle/Resources/views/
要覆盖这些模板,请创建文件夹app/Resources/FOSUserBundle/views
,然后创建一个与要覆盖的FOSUserBundle模板同名的模板。
例如,覆盖更改密码模板:
vendor/friendsofsymfony/user-bundle/Resources/views/ChangePassword/change_password.html.twig
您必须创建app/Resources/FOSUserBundle/views/ChangePassword/change_passord.html.twig