6 Stimmen

Symfony2: Wie man mehrere Registrierungsformulare mit FOSUserBundle erstellt

Ich bin absolut neu in Symfony2 aber bereits in der Liebe mit diesem Rahmen.

Ich habe ein Projekt, das 3 verschiedene Benutzertypen erfordert.

Einer wird ein Super-Admin sein, die anderen beiden werden normale Benutzer sein, aber mit unterschiedlichen Profillayouts. Unterschiedliche Layouts für Profile bedeuten, dass das Registrierungsformular für diese beiden Benutzertypen unterschiedliche Formularfelder und unterschiedliche Layouts in der Anwendung nach der Registrierung haben muss.

Ich glaube, ich habe eine Idee (ich weiß nicht, ob das später in Ordnung ist), wie man Benutzer nach der Registrierung verwalten kann. Aber für jetzt verstehe ich nicht, wie man zwei verschiedene Registrierungsformulare zu bauen, die von FOSUserBundle erweitert werden.

Soweit ich weiß, gibt es bei FOSUB nur einen Punkt in der Konfiguration, an dem die Registrierung eingerichtet wird, und es kann nicht mehrere "Registrierungen" geben.

In der config.yml habe ich:

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: Company\UserBundle\Entity\User
    registration:
        confirmation: { enabled: true }

security.yml:

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

    main:
        pattern:  ^/
        form_login:
            provider: fos_userbundle
            csrf_provider:  form.csrf_provider
        logout:       true
        anonymous:    true

Meine Idee ist es, drei verschiedene Bundles zu erstellen, die FOSUB erweitern, aber die Dokumentation sagt, dass nur ein Bundle FOSUB als Elternteil deklarieren kann.

Eine andere Möglichkeit (aus der Dokumentation) besteht darin, ContainerAware zu erweitern und alle ursprünglichen Methoden zu implementieren. Aber selbst in diesem Fall verstehe ich nicht, wie ich app/config/{config|security|routing}.yml konfigurieren muss, um zum Beispiel /register_employee, /register_manager Links zu haben, die FOSUB und meine benutzerdefinierten Formulare verwenden?

Bitte weisen Sie mir den richtigen Weg. Danke!

4voto

arghav Punkte 139

FOSUserBundle dient nicht der Authentifizierung von Benutzern, sondern der Benutzerverwaltung. Das Bundle bietet Ihnen eine bessere Struktur zur Verwaltung von Benutzern für Ihre Anwendung.

I

T

Y h ,

1voto

nucleartux Punkte 1342

Prüfen Sie dieses Bündel https://github.com/PUGX/PUGXMultiUserBundle . Es bietet allen Mitarbeitern die Möglichkeit, mit mehreren Arten von Benutzern zu arbeiten, einschließlich der Registrierung

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X