Php Laravel 5.2登录事件处理
在数据库中,我有一个表users,列last\u login\u at。每次当一些用户登录时-我想升级最后一次登录 因此,我创建了app/Listeners/UpdateLastLoginOnLogin.php:Php Laravel 5.2登录事件处理,php,laravel,events,login,laravel-5.2,Php,Laravel,Events,Login,Laravel 5.2,在数据库中,我有一个表users,列last\u login\u at。每次当一些用户登录时-我想升级最后一次登录 因此,我创建了app/Listeners/UpdateLastLoginOnLogin.php: namespace App\Listeners; use Carbon\Carbon; class UpdateLastLoginOnLogin { public function handle($user, $remember) { $user-&
namespace App\Listeners;
use Carbon\Carbon;
class UpdateLastLoginOnLogin
{
public function handle($user, $remember)
{
$user->last_login_at = Carbon::now();
$user->save();
}
}
应用程序内/提供商/事件服务提供商:
protected $listen = [
'auth.login' => [
'App\Listeners\UpdateLastLoginOnLogin',
],
];
但这不起作用,事件未被处理。这里已经提到了同样的问题:但没有解决方案。我试过这样做:
以及:
但它不起作用
另外,我检查了这个:但是php artiasn clear编译的并没有解决问题
编辑:有关其他详细信息,这里有一个指向该项目的链接,该链接实际上完全相同(它是以相同的方式完成的):您就快到了,只需再做一些更改,用于验证的事件和侦听器在Laravel 5.2中有一些更改: UpdateLastLoginLogin中的handle方法应该只有一个事件作为参数
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',
],
];
你如何登录用户?@Laket\u ftw这里有一个指向项目的链接,实际上是完全相同的(它是以相同的方式完成的):你自己从任何地方启动的吗?@Alpha是的,没有发生任何事情-上次登录没有更新,没有错误。我使用的是Laravel5.2(最新版本),但是我在这里粘贴的代码是在5.1上使用的,并且在那里工作。这里已经提出了这个问题,但是没有解决这个问题的答案。我有一个问题,假设我们有多个事件要侦听,那么我们是否应该在EventServiceProvider中每次编写不同的侦听器?如果事件是独立的,从逻辑上讲,每个事件都需要一个侦听器。正如您在下面看到的,侦听器可以位于另一个类中,因此您只需在指定事件的EventServiceProvider中激活它
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();
}
}
protected $listen = [
'Illuminate\Auth\Events\Login' => [
'App\Listeners\UpdateLastLoginOnLogin@handle',
],
];