Symfony 2 - Löschen Sie Formulare und CSRF-Token

8

Ich habe eine Liste von Einträgen, die aus einer Datenbank kommen. Ich möchte am Ende jeder Zeile einen "Delete-Button" haben, damit der Benutzer nicht erst auf die Edit / Show-Seite gehen muss, um den Eintrag zu löschen.

Ich habe versucht, ein verstecktes Eingabefeld mit dem csrf-Token wie folgt zu erstellen:

%Vor%

Dies wird ausgegeben:

%Vor%

Der Rest des Formulars habe ich in der Zweigvorlage eingefügt, so dass jedes Formular seinen eigenen Aktionspfad entsprechend der ID des Eintrags hat.

leider in der Zweigvorlage nur die erste

%Vor%

wird gerendert.

Wie kann ich dieses versteckte Feld öfter benutzen? ODER gibt es irgendeine Möglichkeit, das Ganze anders zu machen?

Danke für jede Hilfe

%Vor%     
ldrocks 19.04.2013, 13:45
quelle

3 Antworten

3

Sie können einzelne Token mit:

rendern %Vor%

oder speziell für Ihren Fall:

%Vor%

Aber ich denke, Sie sind besser darin, eine Reihe von Formen zu erstellen und jedes davon vollständig zu rendern:

In Ihrem Controller:

%Vor%

Mach in deinem Zweig etwas nach dem Motto:

%Vor%     
Lighthart 19.04.2013 19:22
quelle
3

Die Antwort von @Lighthart führte mich zur richtigen Antwort:

Erzeuge in deinem Controller ein Array von Formularansichten und überzeuge es in der Ansicht:

%Vor%

Jetzt müssen Sie in Ihrer Ansicht darauf zugreifen. Daher können Sie die Formularfunktionen und die speziellen Loop-Variablen verwenden:

%Vor%

Das ist es.

    
Phidelux 02.12.2015 21:28
quelle
0

Ich sah mich einer ähnlichen Situation gegenüber, in der ich ein Produkt löschen wollte, während ich csrf-Schutz verwendete. Ich wollte auch ajax verwenden, um die DELETE-Anfrage zu stellen.

Getestet für Symfony 3.x

Um dies zu tun, sah meine Sicht , index.html folgendermaßen aus:

%Vor%

Wie oben zu sehen ist, gibt {{ csrf_token('form') }} Ihnen das csrf-Token innerhalb des Zweigs.

Mein Controller :

%Vor%

Und dies sollte die erforderliche Zeile wie erwartet löschen!

    
Niket Pathak 25.03.2017 01:57
quelle

Tags und Links