FOSUserBundle Registrierung anpassen
Was ich versuche zu tun, ist nichts schwer. Dies ist mein erstes Projekt auf symfony und es ist wirklich verwirrend.
Ich bin mit FOSUSerbundle. Ich wollen nicht zu haben, eine Registrierung und Anmeldung Balg /login
und /registration
Also machte ich ein bundle als Kind FOSUSerbundle ... und er überschreibt seine Zweige.
Ich haben ::base.html-Code.Zweig, wo ich header.html-Code.twig und da habe ich: {% render 'FOSUserBundle:Security:login' %}
machen meine teplate (overrided die FOS one) funktioniert gr8. Auch der Fehler nach bezwingend sind-rendering auf der ::base Vorlage Balg "/" Weg.
#Security.yml
form_login:
check_path: /login_check
login_path: /
provider: fos_userbundle
Funktioniert Super.
Und ich tun genau das gleiche für meine Anmeldung.
So, in ::base
ich welcome_page.html.twig
wo ich code {% render 'FOSUserBundle:Registration:register' %}
und da habe ich unter meinen rewrited Vorlage: WelcomePageBundle:Registration:register.html.twig
dies:
{% block fos_user_content %}
{% include "FOSUserBundle:Registration:register_content.html.twig" %}
{% endblock fos_user_content %}[/code]
denen auch von MEINEM rewrited bundle: WelcomePageBundle:Registration:register_content.html.twig
dies:
{% for key, message in app.session.getFlashes() %}
<div class="{{ key }}">
{{ message|trans({}, 'FOSUserBundle') }}
</div>
{% endfor %}
<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" id="register_form">
{{ form_widget(form) }}
{{ form_rest(form) }}
<input type="submit" class="registration_submit" value="{{ 'welcome_page.registration_box.register_submit'|trans }}"/>
</form>
<div class="v_pripade">
{{ 'welcome_page.registration_box.with_reg_problems'|trans }}
<span style='color: #fff568'>{{ 'welcome_page.registration_box.with_reg_problems_part2'|trans }}</span>
</div>
Alles funktioniert wie ein Charme... alle Dateien enthalten sind und angezeigt greate. Aber das problem kommt jetzt.
Wenn ich auf einer route /register
(die grundlegende route von FOS-bundle)
<route id="fos_user_registration_register" pattern="/register">
<default key="_controller">FOSUserBundle:Registration:register</default>
</route>
... füllen Sie die Daten und klicken Sie auf submit... es funktioniert. Die Fehler werden angezeigt oder ist eine Registrierung Erfolg..
Aber wenn ich senden Sie das Formular ab von meiner route /
wo die Anmeldung controller gerendert wird (gerendert ok) verschlägt es mir zu dieser route :/register
das ist das normale Verhalten, weil dieser Weg:
<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" id="register_form">
... diese site ist nicht erweitert durch nichts seine nur saubere form auf die weiße Seite mit Fehler... OK
Aber wie kann ich möglich machen, arbeiten Sie dieses Formular mit Anzeige von Fehlern und Erfolg AUF MEINER ::base template wie das login? und nicht gehen zu /register
route? Ich habe versucht, ersetzen /register
für /
die bringen mich zu meinem ::base
Vorlage (wie in der Anmeldung, die ich tun).
#security.yml
form_login:
check_path: /login_check
login_path: /
provider: fos_userbundle
Aber keiner der Fehler oder ein Erfolg angezeigt werden ...
Tun, wer weiß Lösung?
- Haben Sie versucht, das zu ändern fos_user_register route umfasst registration.xml aus dem Bündel und Präfix (die route) mit / anstelle von /registrieren? Sieht aus wie Sie gerade erstellt haben, eine andere route, die direkt an die register-controller.
- Hast du das richtig funktioniert? Und war es Vadim ' s Vorschlag, der das problem gelöst für dich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finden Sie die offizielle Dokumentation darüber, wie, um Standardwert außer Kraft setzen FOSUserBundle-Controller an
http://symfony.com/doc/current/bundles/FOSUserBundle/overriding_controllers.html
Controller erstellt für Ihre homepage und leiten Anfragen (http://symfony.com/doc/master/book/controller.html#forwarding) zu FOSUserBundle Anmeldung controller oder Logik hinzufügen, um Ihre eigenen controller nach tun, was auch immer FOSUserBundle nicht an der Anmeldung:
oder