Я сделал некоторые исследования и, к сожалению, не смог найти никакой помощи для этого.
Поэтому я отрисовываю FOSUserBundle ChangePasswordAction в моем шаблоне, но он отображает шаблон по умолчанию, предоставленный поставщиком.
Мой шаблон, в котором отображается контроллер:
{% block body %} <h2>Einstellungen</h2> <br/> <h4>Ändern Sie ihr Passwort</h4> {% render controller("FOSUserBundle:ChangePassword:changePassword") %} {% endblock %}
Мой шаблон для ChangePasswordAction, путь – это app/Resources/FOSUserBundle/views/ChangePassword/changePassword.html.twig
:
{% block fos_user_content %} {% trans_default_domain 'FOSUserBundle' %} <form action="{{ path('fos_user_change_password') }}" {{ form_enctype(form) }} method="POST" class="fos_user_change_password"> {{ form_start(form) }} {{ form_errors(form) }} <p><span class="edit_left_date">{{ form_label(form.current_password, 'Jetziges Passwort') }} </span> <span class="edit_right">{{ form_widget(form.current_password) }}</span></p> <p><span class="edit_left_date">{{ form_label(form.new_password, 'Neues Passwort') }} </span> <span class="edit_right">{{ form_widget(form.new_password) }}</span></p> <p><span class="edit_left_date">{{ form_label(form.new_password_confirmation 'Bestätigen Sie ihr neues Passwort') }} </span> <span class="edit_right">{{ form_widget(form.new_password_confirmation) }}</span></p> <div> <input type="submit" value="{{ 'Speichern'|trans }}" /> </div> {{ form_end(form) }} </form> {% endblock %}
Что сводит меня с ума, так это то, что я выводил контроллер входа из FOSUserBundle таким же образом в свой layout.html.twig, и он отлично работает.
Фрагмент кода из макета:
{% block sidebar %} {% render controller("FOSUserBundle:Security:Login") %} {% endblock %}
и app/Resources/FOSUserBundle/views/Security/login.html.twig
:
{% block fos_user_content %} <div class="teaser-header">Login</div> <form role="form" action="{{ path("fos_user_security_check") }}" method="post"> <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" /> <div class="form-group"> <label for="username">{{ 'MyLog Username'|trans }}</label> <input class="form-control" type="text" id="username" name="_username" placeholder="Your Username" required="required" /> </div> <div class="form-group"> <label for="password">{{ 'Password'|trans }}</label> <input class="form-control" type="password" id="password" name="_password" placeholder="Your Password" required="required" /> </div> <input type="submit" id="_submit" name="_submit" value="{{ 'Segel setzen'|trans }}" /> <a id="passwordForget" href={{ path('fos_user_resetting_request') }}>Password vergessen?</a> </form> {% endblock %}
Я что-то пропустил или что я делаю неправильно, поэтому я не могу переопределить шаблон changePassword
?
Переход от комментариев к ответу:
Вы очистили свой кеш с момента добавления нового шаблона?
Что вы в основном делаете, так это создание пользовательского пакета вашего собственного +, установленного родителем для пакета FOS. (Вы уже должны были сделать этот шаг)
Затем вы устанавливаете шаблон в: MyCompany/MyProject/UserBundle/Resources/views/Resetting/request.html.twig
Из-за того, что файл в пакете FOS-пользователя находится на одном месте, ваш файл будет перезаписывать этот шаблон.
Если вы считаете, что все сделано правильно и по-прежнему не работает, вы можете попытаться очистить кеш с помощью команды Symfony в терминале или в некоторых случаях вручную удалить кэш-каталоги – «app / cache / dev» или 'приложение / кэш / прод.