2017-05-16 3 views
3

Ich bin mit L5.4 auf Benachrichtigungssystem arbeiten. Ich habe Ereignisse & Listener erstellt. Ich habe eine Teststrecke für die Auslösung dieses Ereignisses. Das Ereignis wird erfolgreich ausgelöst und ich kann es sogar in meinen Blade-Ansichten unter Verwendung von Pusher empfangen.Event Handler kein Ereignis erhalten Laravel

Aber aus irgendeinem Grund muss ich innerhalb handle(NewUser $event) Methode von meinem listener stoppen. Ich habe versucht dd($event) Aber es hört nie auf. Ich habe zwar registrierten Ereignisse und Zuhörer Mapping in meinem EventServiceProvider mit listen Eigenschaft

//App/Providers/EventServiceProvider.php 
protected $listen = [ 
     'App\Events\NewUser' => [ 
      'App\Listeners\NewUserAdminNotification', 
     ], 
    ]; 

Eigentlich habe ich eine notification in meiner Datenbank innerhalb dieser handle Methode der Zuhörer speichern möchten. Aber es tritt niemals in diese Methode ein.

Jeder Hinweis auf die Probleme wird sehr geschätzt.

+0

Können Sie den Listener-Code veröffentlichen und wie Sie ihn auslösen und testen? – Sandeesh

+0

@Sandesh, Vielen Dank für Ihre Antwort. Siehe meinen Kommentar zu Jonos Antwort. Wie ich bereits erwähnt habe, war das Ereignis feuern in Ordnung, aber nur Handler funktionierte nicht –

Antwort

0

Ändern der Notation für Veranstaltungen & Zuhörer Klassen für mich funktioniert.

0

Manchmal müssen Sie die kompilierten Klassen löschen, damit Laravel die neuen Ereignisse registriert.

In Konsole/Terminal laufen:

composer dump-autoload

und

php artisan clear-compiled

+0

Danke für Ihre Antwort. Ich habe gerade versucht, eine andere Notation in "EventServiceProvider" für beide Ereignisse und Listener in 'listen' Array '\ App \ Events \ NewUser :: class' statt String-Notation und es funktionierte. Ich weiß nicht warum, denn sogar Laravel-Dokumente haben die String-Notation erwähnt. –

+0

Zweitens, wie Sie vorgeschlagen haben, die kompilierten Klassen mit 'Dump-Autoload' zu löschen. Ja, manchmal funktioniert das. Ich denke, 'Laravel' führt diesen Befehl automatisch aus, nachdem wir den Befehl' artisan make' ausgeführt haben. –