In Laravel 5.2
, ich habe meine Event-Listener (in app\Providers\EventServiceProvider.php
), wie hinzugefügt:Laravel 5.2: Wie Zugriff auf Request & Session-Klassen von eigenen Event Listener?
protected $listen = [
'Illuminate\Auth\Events\Login' => ['App\Listeners\UserLoggedIn'],
];
Dann erzeugt es:
php artisan event:generate
Dann in der Event-Listener selbst app/Listeners/UserLoggedIn.php
Datei, es ist wie:
<?php
namespace App\Listeners;
use App\Listeners\Request;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Auth\Events\Login;
class UserLoggedIn
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
}
/**
* Handle the event.
*
* @param Login $event
* @return void
*/
public function handle(Login $event, Request $request)
{
$request->session()->put('test', 'hello world!');
}
}
Dies zeigt mir folgende Fehler:
ErrorException in UserLoggedIn.php line 28:
Argument 2 passed to App\Listeners\UserLoggedIn::handle() must be an instance of App\Listeners\Request, none given
Was habe ich vermisst, oder wie kann ich das bitte lösen?
- Letztlich muss ich in Laravel Sessions schreiben, sobald der Benutzer angemeldet hat.
Vielen Dank.
Woww das funktioniert! Vielen Dank!! --- Das heißt also, ich kann die Art und Weise, wie ich Anfragen und Sessions behandle, NICHT wie die normale 'routes.php' Datei benutzen. Stattdessen muss ich, sobald ich in den Event-Handlern bin, deinen Weg gehen. Habe ich bitte recht? –
Ich weiß nicht, wie Sie Anfragen in der 'routes.php' Datei bearbeitet haben. Bitte zeigen Sie ein Beispiel und dann kann ich etwas sagen :) –
Ich meine, in 'routes.php', wenn ich auf Requests & Sessions zugreifen möchte, verwende ich wie:' Route :: get ('home', Funktion (Request $ request) {$ request-> session() -> put ('test', 'Hallo Welt!');}); '. Ofcos, die in der 'Web'-Middleware enthalten ist. (Oder heißt es, diese sind dort möglich, weil sie sich in 'web'-Middleware befinden?) Nochmals vielen Dank! :)) –