Ankündigung

Einklappen
Keine Ankündigung bisher.

Symfony 6.4 - FormHandler - Dialogbox für Rückmeldungen an den Benutzer

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Symfony] Symfony 6.4 - FormHandler - Dialogbox für Rückmeldungen an den Benutzer

    Ich verwende Symfony 6.4 und habe das Formularhandling aus dem Controller geworfen und in einen Formular-Handler ausgelagert.
    Als das Handling noch im Controller war,konnte eine Rückmeldung an den Benutzer wie folgt aussehen:
    PHP-Code:
    $this->addFlash('success''Der Benutzer wurde erstellt.'); 
    Nun, wenn das Handling ausgelagert ist und im Controller nur noch der Aufruf erfolgt, sieht das ganze so aus:
    Aufruf im Controller:
    PHP-Code:
    if ($formHandler->handleUserForm($userForm$request)) {
        return 
    $this->redirectToRoute('app_user.add');

    Handler:
    PHP-Code:
    [...]
    $this->userService->createUser($data);
    $this->requestStack->getCurrentRequest()->getSession()->getFlashBag()->add('success''Der Benutzer wurde erstellt.'); // Um diese Zeile geht es
    return true;
    [...] 
    Der Befehl um dem Benutzer eine Rückmeldung zu geben scheint zum einen sehr lang und über mehrere Ecken zu gehen und ist wohl auch nicht so richtig effektiv. Er funktioniert, aber kann das so wirklich richtig sein?
    Könnt ihr mir bitte weiterhelfen, dass die Rückmeldung an de Benutzer ordentlich erfolgt?
    PHP 8.3
    MariaDB 10.6
    Symfony 6.4 (LTS)

  • #2
    Hey,
    was spricht dagegen, die addFlash Methode aufzurufen, bevor du den Benutzer auf die app_user.add weiterleitest ?
    PHP-Code:
    if ($formHandler->handleUserForm($userForm$request)) {
        
    $this->addFlash('success''Der Benutzer wurde erstellt.'); 
        return 
    $this->redirectToRoute('app_user.add');

    Kommentar


    • #3
      Dagegen spricht, das im Handler gewisse Bedingungen geprüft werden und ggf. darauf mit einer entsprechenden (Fehler-)Meldung reagiert wird und ich diese nicht im Controller haben möchte.
      Ich halte es für sinnvoll und vom Code her auch besser verständlich, wenn diese im Handler verbleiben. Ich weiß, dass es dazu unterschiedliche Meinungen gibt und man der Ansicht sein kann, dass so etwas in den Controller gehört. Es ist aber auch nicht falsch es im Handler zu belassen.
      PHP 8.3
      MariaDB 10.6
      Symfony 6.4 (LTS)

      Kommentar

      Lädt...
      X