Hallo liebe Community,
in der Registrierungsseite nehme ich im Enlight_Controller_Action_Frontend_Register_saveRegister Event Änderungen an den Werten der Textfeldern vor.
Die saveRegisterAction Methode vom Register Controller steckt aber die Inhalte der Textfelder in das Model.
Ich müsste also nach meiner Anpassung einmal die Seite neu laden.
Geht das?
Hallo,
würde ich nicht tun, weil du so das gleiche Formular zwei mal absendest, was zu doppelten eindeutigen Einträgen in der Datenbank führt.
Es gibt dafüre elegantere Methoden. Du könntest z. B. im preDispatch Event die Werte in den Textfeldern ändern, sodass die eigentliche speichern Action dann deine neuen Werte hernimmt. Hierfür müsstest du mal in den Code schauen, wie die im Shopware Controller abgegriffen werden.
Wenn das nicht geht, dann musst du wohl die Methode mittels eines Hooks komplett ersetzen.
Oder was auch eine Möglichkeit wäre: Klinke dich im Frontend auf das onsubmit Event vom Formular ein und ändere dort deine Werte zu dem was du willst. So werden quasi dann nur noch die richtigen Werte abgesendet und können so direkt vom Controller verarbeitet werden.
Alternativ dazu könntest du auch im postDispatch Event vom Controller die Daten einfach nochmal überspeichern. Den ursprünglichen Wert bekommst du ja über POST Formular Parameter mit, mit denen kannst du dann ja arbeiten. Ist vielleicht nicht der schönste Weg, aber ein relativ einfacher.
MFG
derwunner