Я пытаюсь обновить пользовательский номер last_login_at
при входе пользователя в систему на Laravel 5.2. Я использовал php artisan make:auth
.Отображение EventServiceProvider для Laravel 5.2 login
У меня есть приложение/Слушатели/UpdateLastLoginOnLogin.php.
namespace App\Listeners;
use Carbon\Carbon;
class UpdateLastLoginOnLogin
{
public function handle($user, $remember)
{
$user->last_login_at = Carbon::now();
$user->save();
}
}
И в приложение/Провайдеры/EventServiceProvider:
пространства имен App \ поставщиков;
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/Контроллеры/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
?
Я получаю ошибку FatalErrorException в UpdateLastLoginOnLogin.php строке 14: Вызовите undefined метод Illuminate \ Auth \ Events \ Login :: save() – shin
вы вызываете сохранение в событии? возможно, вы хотите сделать это на модели? – lagbox
Ну, я просто хочу обновить user_login_at пользователя при входе пользователя. – shin