Contao-Summit 2026

Ankündigung

Collapse
No announcement yet.

Hook greift nicht - was tun?

Collapse
X
 
  • Filter
  • Zeit
  • Show
Clear All
new posts

    Hook greift nicht - was tun?

    Guten Tag zusammen,

    ich versuche gerade, das Hook-Beispiel "updatePersonalData" (https://docs.contao.org/dev/referenc...ePersonalData/) lokal umzusetzen.
    Leider passiert nichts, der Hook wird beim Abspeichern der Mitgliedsdaten nicht ausgeführt.
    Mein PHP Code:
    PHP-Code:
    <?php
    // src/EventListener/UpdatePersonalDataListener.php
    namespace App\EventListener;

    use 
    Contao\CoreBundle\DependencyInjection\Attribute\AsHook;
    use 
    Contao\Module;
    use 
    Contao\FrontendUser;

    #[
    AsHook('updatePersonalData')]
    class 
    UpdatePersonalDataListener
    {
        public function 
    __invoke(FrontendUser $member, array $data, Module $module): void
        
    {
            
    print_r($member);
            die();

            
    //$f_test = fopen('hook_test.txt', 'w');
            //fwrite($f_test, 'Hook wurde aufgerufen');
            //fclose($f_test);
        
    }
    }
    Ausgabe des Befehls "php vendor/bin/contao-console debug:container UpdatePersonalDataListener":
    PHP-Code:
    Information for Service "App\EventListener\UpdatePersonalDataListener"
    ======================================================================

     ---------------- -------------------------------------------------------------- 
      
    Option           Value                                                         
     
    ---------------- -------------------------------------------------------------- 
      
    Service ID       App\EventListener\UpdatePersonalDataListener                  
      
    Class            App\EventListener\UpdatePersonalDataListener                  
      Tags             contao
    .hook (hook: updatePersonalData, method: , priority: )  
      Public           
    yes                                                           
      Synthetic        no                                                            
      Lazy             no                                                            
      Shared           yes                                                           
      
    Abstract         no                                                            
      Autowired        yes                                                           
      Autoconfigured   yes                                                           
     
    ---------------- -------------------------------------------------------------- 
    Der Hook scheint also registriert zu sein. Was fehlt noch bzw.mache ich falsch?
    Die Contao Version ist 4.13.43
    Besten Dank im Voraus!

    #2
    Der Hook wird nur ausgeführt, wenn die Formulardaten validiert wurden, hast du das berücksichtigt?
    » sponsor me via GitHub or Revolut

    Comment


      #3
      Vielen Dank für die schnelle Antwort.
      Ich verstehe nich so ganz wie das gemeint ist. Ich klicke auf "speichern" oder "speichern und schliessen" und es kommt keine Fehlermeldung. Meines Erachtens müsste doch dann die Validierung der Eingabedaten stattgefunden haben oder nicht?
      Falls nicht, was muss ich tun, um festzustellen, ob die Eingabdaten erfolgreich validiert wurden?

      Comment


        #4
        Zitat von FM - Contao Anfänger Beitrag anzeigen
        Ich klicke auf "speichern" oder "speichern und schliessen" und es kommt keine Fehlermeldung.
        Diese Buttons gibt es im Frontendmodul "Persönliche Daten" nicht. Der Hook ist für das Frontendmodul "Persönliche Daten", nicht für das Backend. Für das Backend nutzt du die verschiedenen Callbacks (manche davon greifen auch im Frontend), je nachdem was du machen möchtest.
        » sponsor me via GitHub or Revolut

        Comment


          #5
          Aaaahhh ok, das wusste ich nicht, Vielen Dank für den Hinweis! Das erklärt natürlich alles.
          Wäre vielleicht gut, wenn dieser Hinweis auch in der Duko stehen würde, bin bestimmt icht der einzige (Anfänger), der auf dieses Problem stößt.

          Comment


            #6
            Zitat von FM - Contao Anfänger Beitrag anzeigen
            Wäre vielleicht gut, wenn dieser Hinweis auch in der Duko stehen würde, bin bestimmt icht der einzige (Anfänger), der auf dieses Problem stößt.
            Auf jeder Seite in der Dokumentation hast du rechts oben einen Button zum editieren. Dort kannst du einen Vorschlag einbringen. Allerdings habe ich das Wording schon etwas angepasst.
            » sponsor me via GitHub or Revolut

            Comment

            Working...
            X