Я пытаюсь обновить last_login_at
пользователя при входе пользователя в Laravel 5.2. Я использовал php artisan make:auth
.
У меня есть приложение / Listeners / UpdateLastLoginOnLogin.php.
namespace App\Listeners; use Carbon\Carbon; class UpdateLastLoginOnLogin { public function handle($user, $remember) { $user->last_login_at = Carbon::now(); $user->save(); } }
И в app / Providers / EventServiceProvider:
namespace App \ Providers;
use Illuminate\Contracts\Events\Dispatcher as DispatcherContract; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; class EventServiceProvider extends ServiceProvider { /** * The event listener mappings for the application. * * @var array */ protected $listen = [ 'auth.login' => [ 'App\Listeners\UpdateLastLoginOnLogin', ], ]; /** * Register any other events for your application. * * @param \Illuminate\Contracts\Events\Dispatcher $events * @return void */ public function boot(DispatcherContract $events) { ...
У меня есть следующие приложения в приложении / User.php
protected $dates = ['last_login_at'];
И в моем приложении / Http / Controllers / Admin / DashboardController.php
namespace App\Http\Controllers\Admin; use App\Blog; use App\User; use App\Http\Controllers\Controller; class DashboardController extends Controller { public function index(Blog $blogs, User $users) { $blogs = $blogs->orderBy('updated_at', 'desc')->take(5)->get(); $users = $users->whereNotNull('last_login_at')->orderBy('last_login_at', 'desc')->take(5)->get(); return view('admin.dashboard', compact('blogs','users')); } }
Он работал в Laravel 5.1, но это не в Laravel 5.2.8. Я думаю, что проблема заключается в сопоставлении в EventServiceProvider, 'auth.login' => ['App\Listeners\UpdateLastLoginOnLogin',]
. Я попробовал login
и Auth::login()
вместо auth.login
но они тоже не работали.
Как я могу сопоставить protcted $listen
?