2016-08-05 12 views
0

Ich bin neu mit Silex. Ich verwende this Skript.Verwenden Sie 2 Formulare (Benutzer/Admin) mit Formulartyp in Silex

Ich habe ein neues Feld "status" in der Kommentartabelle hinzugefügt, um den Kommentar vom Administrator zu validieren.

In this Skript haben wir einen Formulartyp für Kommentar.

Ich möchte diese Datei ändern, um die TextArea anzuzeigen, wenn es ein einfacher Benutzer ist und das Textfeld + Auswahlfeld, um den Status eines Kommentars zu ändern, wenn es ein Admin ist.

Ich kann die role_admin Prüfung verwenden:

if ($app['security.authorization_checker']->isGranted('ROLE_ADMIN')) 

Wie schlagen Sie vor, um einfach andere Form zeigen, über die Rolle Benutzer abhängig?

Antwort

0

Sie haben da einige Möglichkeiten.

  1. Sie können den Container in Ihrem Formulartyp übergeben. $ app ist der DI-Container, auf den Sie nur zugreifen können, wenn Sie ihn in Ihren Klassen übergeben.

  2. Erstellen Sie einen zweiten Typ, der Ihren Formulartyp erweitert oder nur das Kontrollkästchen aktiviert. In Ihrem Controller sollten Sie auf $ app zugreifen und dann die Auswahl treffen.

+0

Danke für die Antwort. Ich werde es prüfen. Ich weiß, dass ich mehr Formulartypen hinzufügen kann, aber ich möchte nicht 50 Formulartypen für alle spezifischen Formulare haben, die ich in Zukunft hinzufügen kann. Vielleicht ist die erste Option mehr zu optimieren. –

Verwandte Themen