2016-06-16 8 views
0

Mein Symfony2-Formular enthält ein Textfeld mit der ID der Entität.Symfony2 ID-Feld von übermittelten Formulardaten entfernen

habe ich folgendes dies zu erreichen:

$formBuilder->add('id', TextType::class, ['attr' => ['readonly' => true]]) 

Wenn Sie das Formular absenden, die eine bestehende Einheit darstellt, wird die ID übergeben und Lehre sucht nach einem Accessormethode die ID zu ändern. An dieser Stelle wird eine Ausnahme ausgelöst, da die Entität die ID nicht ändern kann.

Wie lautet die übliche Vorgehensweise in Symfony2, ein schreibgeschütztes Feld bereitzustellen, das nicht gespeichert werden soll?

Antwort

0

readonly ist für Kunden. Es zeigt an, dass der Client den Wert des Elements nicht ändern kann. Aber es wird mit Formular eingereicht werden.

Wenn der Wert des Elements nicht übermittelt werden soll, verwenden Sie stattdessen disabled.

+1

Ja, ich hatte nicht erwartet, dass Readonly auf der Serverseite Auswirkungen hat. Ich wusste aber nicht von "deaktiviert", weil ich nur in der allgemeinen Formulardokumentation nachgesehen habe, während es in der TextType-Dokumentation zu finden ist – fishbone