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?
Schreibe einen Kommentar