Wie in entity-Typ Formular einige Felder, die von einer anderen Entität?
Möchte ich die Felder von wenigen Personen in einem Formular, kann ich es tun? Zum Beispiel möchte ich hinzufügen, um eine form surname
Feld aus ProfileType
Art und name
Feld aus CountryType
. Diese Felder muss eine einfache Zeichenfolge (text
).
Wie kann ich es tun? Danke!
HINWEIS: ich kann nicht mit entity geben, weil Symfony bieten nur Checkboxen, radio-buttons und wählt für Sie, aber ich brauche, um eine einfache text Feld.
- Nach dem senden des Formulars, beide Einrichtungen sind betroffen?? Wenn so, ich denken Sie, müssen Sie einige änderungen in der Modell-Ebene (durch das hinzufügen von Beziehungen zwischen Entitäten). Aber es ist eben ein newb Bemerkung.
- Ja, Sie sind beide betroffen. Beziehungen habe ich bereits, aber Symfony bieten nur Checkboxen, radio-buttons und wählt es mit der Art Entität, aber ich muss verwenden Sie das Textfeld für die es
- Bezüglich der Aufnahme das Feld "name" aus Ihrem CountryType - ist diese in einem readonly-Kontext? Wie es scheint seltsam für mich, um zu ändern den Namen des Landes von den assoziierten Land? Es ist mehr üblich, mit der 'Einheit' geben Sie für die Auswahl aus der Liste der verfügbaren (fest) Ländern.
- Ja, es ist vielleicht nicht das beste Beispiel. Ich bin ein wenig vereinfacht meine Aufgabe. Aber ich muss es geändert, nicht nur Lesen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Enthalten Felder aus verknüpften Entitäten in einer form, die Sie einbetten eines benutzerdefinierten Formulars geben Sie für jede verbundene Einrichtung. Theoretisch ist es möglich, anzeigen und aktualisieren der Daten für eine komplexe Einheit mit vielen Beziehungen in einem einzigen Formular. In der Praxis macht das für N Beziehungen kann kompliziert werden, aber es ist einfach für toOne-Beziehungen. Sehen Eingebettete Formulare: die Einbettung eines einzelnen Objekts in der Symfony-Formulare-Dokumentation.
Beispielsweise in der form geben Sie für Ihre Haupt-entity:
Dann in Ihrem Zweig können Sie fügen Sie die Felder, die Sie benötigen, wie diese:
Vorausgesetzt, Ihr ProfileType und CountryType andere Felder hinzufügen Ihre Formulare dann, wenn Sie "form_rest(Formular)" in Ihrem Zweig erhalten Sie die anderen Felder, die Sie nicht wollen, oder wenn Sie nicht form_rest dann je die symfony-version, die Sie verwenden, erhalten Sie möglicherweise Fehler. Es gibt mehr als einen Weg, dies zu behandeln.
Benutze ich manchmal 'form_widget(_token)' an Stelle von 'form_rest(form)' um diese Frage. Aber ich weiß nicht, ob Sie können sich auf dieser weiter zu arbeiten in der Zukunft. Sie wickeln konnte "form_rest(Formular)" in einem versteckten div, wie es ist in der Regel nur verwendet, fügen Sie die versteckten "_token" - Feld, und in diesem Fall wollen Sie nicht sehen, die anderen Profil-und Country-Felder. In diesem Fall wird die versteckte Einheit Werte sind noch abgebildet, um die form und zurück, mit entsprechenden Aufwand, aber die Werte können nicht geändert werden.
Alternativ können Sie mehrere Formular-Typen für Ihre Profil-und Land-Einheiten und verwenden Sie die entsprechende ein für den Kontext. Ich weiß nicht, was Ihre form ist, aber, zum Beispiel, haben Sie vielleicht EditThingProfileType und EditThingCountryType für den Einsatz in der buildForm () - Methode vor, indem jede nur das einzige Feld, das Sie benötigen, auf Ihrem Formular.