UserType-Formular:
%Vor%TutorType-Formular:
%Vor% Beim Rendern wird der UserType
in einem div gerendert, ich kann keinen Weg finden, dies zu überwinden.
Das Formular wird als
gerendert%Vor%
Das form_tutor_user
ist in ein eigenes Formulargruppen-Div eingeschlossen.
Ich habe versucht, das form_tutor_user_widget zu überschreiben, aber das ist eine Ebene zu tief. (Und nur eine schnelle Lösung, sollte es global auf alle Formulartypen angewendet werden - Klassen)
Wie kann ich das Design ändern, sodass alle benutzerdefinierten Typen nicht mit der Standardvorlage "form_row" umschlossen sind?
Oder wie kann ich in Zweigen wissen, wenn ein "Unterformular" gerendert wird?
Daher kann ich entscheiden, das <div class="form-group">
zu drucken, wenn der Kindknoten kein Unterformular ist, oder es zu überspringen, falls dies der Fall ist.
TIA
Standardmäßig im Basisformthema:
%Vor%Und für benutzerdefinierte zusammengesetzte Formulare:
%Vor%Wenn Sie hier nichts geändert haben, sollte das DIV, das Sie sehen, aus dem einen oder anderen Template stammen.
Wenn jedoch in Ihrem Beispiel form_tutor_user_row definiert ist, wird das erste Bit niemals verwendet. Wenn form_tutor_user_widget definiert ist, wird das letzte Bit nie verwendet.
Zurück zu Ihrer Frage. Ihre Frage ist: "Wie kann ich das Design ändern, sodass alle benutzerdefinierten Typen nicht mit der standardmäßigen Vorlage" form_row "umschlossen werden?"
Hier ist das Problem, so wie ich es sehe: Sie möchten, dass Ihre TOP-Formulare (die Form, in der alle Unterformen enthalten sind) alle eine gemeinsame Art des Renderings in Abschnitten haben. Jeder Abschnitt wird in einem DIV mit class="form-group" enthalten sein. Vielleicht möchten Sie einige zusätzliche Rendering-Operationen einwerfen, aber ich werde mich darauf beschränken, die Dinge einfach zu halten.
Sie müssen dann einen bestimmten Formulartyp erstellen und alle TOP-Formulare von diesem neuen Formulartyp übernehmen. Zum Beispiel:
%Vor%... und eine vererbte Form:
%Vor%Wie Sie sehen können, ist es nicht nötig, die PHP-Vererbung für das Vererben von Forming-Vererbung zu machen.
Template-Theming-weise (kann ich das sogar sagen?), wenn für my_form keine spezielle Formgebung festgelegt ist, wird Symfony verstehen, dass das hier zu verwendende Standardformthema das Formthema von ist top_form , die Sie als solche definieren können:
%Vor%Ich sollte hinzufügen, dass dies ein Problem ist, dem ich bereits begegnet bin und es gelöst habe. Sag mir, wie das für dich funktioniert.
Bearbeiten:
Um es zusammenzufassen, was Sie tun müssen ist:
Normalerweise löse ich dieses Problem, indem ich die Felder des geschachtelten Formulars manuell rendere:
%Vor%Wahrscheinlich ist das nicht die eleganteste Lösung, aber es funktioniert für mich und ich habe noch keinen eleganten gesucht.
Tags und Links symfony symfony-forms twig symfony2.4