Laravel 5.2 Регистрация событий

В базе данных у меня есть пользователи таблицы с столбцом last_login_at. Каждый раз, когда какой-то пользователь входит в систему, я хочу перевернуть last_login_at .

Итак, я создал приложение / Listeners / UpdateLastLoginOnLogin.php :

namespace App\Listeners; use Carbon\Carbon; class UpdateLastLoginOnLogin { public function handle($user, $remember) { $user->last_login_at = Carbon::now(); $user->save(); } } 

В приложении / Провайдерах / EventServiceProvider:

  protected $listen = [ 'auth.login' => [ 'App\Listeners\UpdateLastLoginOnLogin', ], ]; 

НО это не работает, событие не обрабатывается. Та же проблема уже упоминалась здесь: отображение EventServiceProvider для входа в Laravel 5.2, но без решения. Я попытался сделать так:

 use Illuminate\Auth\Events\Login; class UpdateLastLoginOnLogin { public function handle(Login $event) { $event->user->last_login_at = Carbon::now(); $event->user->save(); } } 

а также:

 protected $listen = [ 'Illuminate\Auth\Events\Login' => [ 'App\Listeners\UpdateLastLoginOnLogin', ], ]; 

Но это не сработает.

Кроме того, я проверил это: https://laracasts.com/discuss/channels/general-discussion/login-event-handling-in-laravel-5, но php artiasn clear-compiled не решила проблему.

EDIT: ДЛЯ ДРУГИХ ДЕТАЛЕЙ, ЗДЕСЬ СВЯЗЬ С ПРОЕКТОМ, который на самом деле точно такой же (это делается точно так же): https://github.com/tutsplus/build-a-cms-with-laravel

Related of "Laravel 5.2 Регистрация событий"

Вы почти там, всего несколько изменений, события и прослушиватели для аутентификации немного изменились в Laravel 5.2: метод handle в UpdateLastLoginOnLogin должен иметь только событие в качестве параметра

 namespace App\Listeners; use Carbon\Carbon; use Auth; class UpdateLastLoginOnLogin { public function handle($event) { $user = Auth::user(); $user->last_login_at = Carbon::now(); $user->save(); } } 

И для EventServiceProvider вы указываете слушателей следующим образом:

 protected $listen = [ 'Illuminate\Auth\Events\Login' => [ 'App\Listeners\UpdateLastLoginOnLogin@handle', ], ];