[APF3.4] form->fillForm() Problem

Das Forum soll der Ablage von Lösungen für immer wieder auftauchende Problemstellungen dienen. // This forum contains solutions to problems that frequently occur.
Antworten
Benutzeravatar
dave
Beiträge: 921
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

[APF3.4] form->fillForm() Problem

Beitrag von dave » 05.04.2018, 20:23:43

Hallo Christian,

bin gerade dabei, das bequeme Befüllen/Erstellen von Objekten und Formularen via

Code: Alles auswählen

$form->fillModel()
$form->fillForm()
zu ergründen. Die Funktion ist schonmal einsame Spitze, das Befüllen von Formularen ist super schnell und einfach erledigt.

Ich habe nun jedoch noch ein kleines Problem, welches ich jedoch als Bug erachte. Möchte das trotzdem erstmal kurz hier erläutern:
Mein Objekt besteht bspw. aus folgenden Eigenschaften:

Code: Alles auswählen

StrasseHausnummer
InternetURL
Mein Formular hat input-Felder mit exakt auch diesem Namen. Jedoch werden diese nicht befüllt. Das Problem liegt nämlich darin, dass die Eigenschaften umbenannt werden in

Code: Alles auswählen

Strasse-hausnummer
Internet-uRL
Passe ich also die Namen der input-Felder an, klappt auch die Befüllung.

Das Problem scheint die regular-Expression der Methode mapModelPropertyNameToFormControlName der Klasse HtmlFormTag zu sein. In der Doku wird ja auch erwähnt, dass Bindestriche nicht als PHP-Variablen zulässig sind.
Mir fällt gerade keine gute Lösung ein, um das abzufangen.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4580
Registriert: 04.11.2007, 16:13:53

Re: [APF3.4] form->fillForm() Problem

Beitrag von dr.e. » 12.04.2018, 14:31:05

Hallo dave,

das ist ein guter Punkt! An sich ist die Idee des Mappings nicht PHP-konforme Namen mit Bindestrichen zu remappen.

In deinem Fall fangen die Namen jeweils mit einem Großbuchstaben an und das könnte den regulären Ausdruck durcheinander bringen. Kannst du deine Felder mal in strasseHausnummer (kleines "s" am Anfang)?
Viele Grüße,
Christian

Benutzeravatar
dave
Beiträge: 921
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [APF3.4] form->fillForm() Problem

Beitrag von dave » 16.04.2018, 16:29:04

Hi Christian,

ich habe mal getestet. Die einzige Änderung ist, dass die Felder nun

Code: Alles auswählen

strasse-hausnummer
internet-url
heissen. Der Bindestrich "-" wird grundsätzlich "rein gemogelt", obwohl dies ja nur dann durchgeführt werden sollte, wenn wir ein DomainObjekt aus einem Formular befüllen.
Ich bin mit reulären Ausdrücken leider gar nicht bewandert, sonst würde ich das selbst fixen ... :?

Benutzeravatar
dr.e.
Administrator
Beiträge: 4580
Registriert: 04.11.2007, 16:13:53

Re: [APF3.4] form->fillForm() Problem

Beitrag von dr.e. » 18.04.2018, 17:32:33

Hallo dave,

ok, dann schaue ich mir das nochmal genauer an. Grundsätzlich war die Idee eine saubere Benennung der Felder zu definieren, die immer dem gleichen Schema folgt. Das bedeutet in der aktuellen Implementierung (leider) auch, dass bereits PHP-konforme Namen re-strukturriert werden.

Denke das sollte sich aber lösen lassen. Ich schreibe mal einen Unit Test und passe die Implementierung an.

Könntest du in der Zwischenzeit auch mit der aktuellen Vorgehensweise leben?
Viele Grüße,
Christian

Benutzeravatar
dave
Beiträge: 921
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [APF3.4] form->fillForm() Problem

Beitrag von dave » 19.04.2018, 17:52:51

Hi Christian,
Ok, freut mich wenn du die Problematik nachvollziehen konntest.
dr.e. hat geschrieben:
18.04.2018, 17:32:33
Könntest du in der Zwischenzeit auch mit der aktuellen Vorgehensweise leben?
Jup, gar kein Problem. Habe meine Felder erstmal mit ner Notiz angepasst. Nutze es bisher sowieso nur an einer Stelle testweise.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste