Ergebnis 1 bis 3 von 3

Thema: Fehlerhandling in ProcessFormData Hook -- Frage dazu

  1. #1
    Contao-Nutzer
    Registriert seit
    24.02.2010.
    Beiträge
    64

    Standard Fehlerhandling in ProcessFormData Hook -- Frage dazu

    Ahoi, ihr erfahrenen Captain Hooks,

    wenn in meiner eigenen processFormData - Funktion ein inhaltlicher Fehler auftritt, gibt es einen
    Contao-Mechanismus, um einen Fehler zu erzeugen (der z.B. das Formular wieder anzeigt)?

    Ich teste die eingegeben Daten schon in einer validateFormField-Funktion, aber für den
    seltenen Fall, dass in letzter Minute noch ein Problem auftaucht (Szenario: Sprachkurse
    mit limitierten Plätzen reservieren, der letzte Platz ist weg), kann ich in processFormData einen
    solchen lesbaren Fehler auslösen?

    Danke für eure Tipps,
    flx.

  2. #2
    Contao-Fan Avatar von bekanntmacher
    Registriert seit
    13.08.2009.
    Ort
    St. Gallen, Schweiz
    Beiträge
    354
    Partner-ID
    6419

    Standard

    schau mal hier rein: https://github.com/contao/core/blob/.../Form.php#L254
    beantwortet es deine Frage?

  3. #3
    Contao-Nutzer
    Registriert seit
    24.02.2010.
    Beiträge
    64

    Standard

    Zitat Zitat von bekanntmacher Beitrag anzeigen
    schau mal hier rein: https://github.com/contao/core/blob/.../Form.php#L254
    beantwortet es deine Frage?
    Wow, danke. Es macht ein bisschen klick. Der richtige Hook wäre storeFormData (den gibt es seit Contao 2.11.2, ich benutze hier 2.11.11). Bei processFormData sind die Daten ja schon gemailt und/oder geschrieben.

    Allerdings, Einwand: ein Konkurrenzproblem kann ich auch bei storeFormData nicht ausschließen. Oder? Es kann ja immer noch eine andere Instanz mir den letzten Seminarplatz zwischen der Ausführung des storeFormData-Hooks und dem folgenden Datenbank-Insert wegschnappen.

    Deshalb scheint es hier sogar doch richtig zu sein, den Fehler im processFormData-Hook zu behandeln. Um Konkurrenzprobleme in processFormData zu entdecken, muss man übrigens die Contao-Database-Methode "executeUncached()" verwenden, sonst geht es daneben. Dann das fehlerhafte DB-Update rückgängig machen. Anschließend einen Fehler generieren, der dem Nutzer klarmacht, dass er das Formular nochmal schicken muss. Ich mache das jetzt einfach mit einer sinnvollen Fehlermeldung und "exit".

    Einverstanden? Einwände? Wäre __error() besser als nur exit?

    Grüße und danke!
    flx.
    Geändert von flx (07.11.2013 um 10:44 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •