使用Bootstrap的FOSUserBundle自定义表单

时间:2017-05-23 11:42:58

标签: symfony twig fosuserbundle

我在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(); } } 提供的其他模板。

如果有人已经这样做了,我想知道你是怎么做到的。 感谢。

1 个答案:

答案 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