27.02.2015
3525 x gelesen

Umbenennen von Formularfeldern in Contao

Wenn Sie im Contao Formulargenerator die Namen von Feldern umbenennen, sind die bisher abgesendeten Formulardaten im Contao Backend nicht mehr sichtbar. Es gibt eine Einfache Lösung, die direkt in der Datenbank umgesetzt wird und weniger als 1 Minute Arbeit in Anspruch nimmt.

Problem

Wir wollten eine gewisse Einheitlichkeit haben und haben im Formulargenerator von Contao alle Deutschen Feldnamen in Englische Feldnamen umbenannt. Dadurch hat sich z.B. das Feld "firmenname" zu "company" geändert.

Infolge dessen wurden die Formulardaten von bereits bestehenden Einträgen im Contao Backend nicht mehr vollständig dargestellt. 

Das Problem tritt bis einschließlich Contao 3.4.4 auf. Über die zukünftige Situation können wir aktuell natürlich keine Auskunft geben.

Lösung

In der Datenbank-Tabelle tl_formdata_details müssen die alten (falschen) Feldnamen in die neuen umbenannt werden. Die Werte in der Spalte ff_name stellen die Feldnamen dar.

Unsere Lösung gilt nicht für den Fall, wenn Sie mehrere Formulare mit gleichen Feldnamen verwenden und die Änderungen nur für ein bestimmtes Formular gelten soll.

In unserem Fall sollen die Feldnamen in allen Formularen geändert werden.

Bevor Sie die SQL-Abfrage direkt in PHPMyAdmin ausführen lassen, fertigen Sie eine Sicherung der Datenbank-Tabelle tl_formdata_details an. Dennoch ist die Verwendung des SQL-Codes auf eigene Gefahr und ohne Gewähr!

Beispiel-Code

UPDATE `tl_formdata_details` SET ff_name = 'company' WHERE ff_name = 'firmenname'

Erklärung dazu:

Alle Felder, die den Namen "firmenname" haben, sollen in "company" umbenannt werden.

Optimale Lösung

Wenn Sie viele Formulare verwenden und sowieso alle Felder mit dem gleichen Namen umbenennen wollen, können Sie zusätzlich die Felder im Formulargenerator umbenennen lassen. Bevor Sie die SQL-Abfrage direkt in PHPMyAdmin ausführen lassen, fertigen Sie eine Sicherung der Datenbank-Tabelle tl_form_field an. 

Beispiel-Code

UPDATE `tl_form_field` SET name = 'company' WHERE name = 'firmenname'

Artikelbewertung

5.0 von 5 Sternen (1 Stimme)
Sie können diesen Artikel bewerten indem Sie einen Kommentar abgeben.

Zurück

Einen Kommentar schreiben

Von Axel am

Dank schee

Bewerten Sie diesen Artikel