Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.2登录事件处理_Php_Laravel_Events_Login_Laravel 5.2 - Fatal编程技术网

Php Laravel 5.2登录事件处理

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-&

在数据库中,我有一个表users,列last\u login\u at。每次当一些用户登录时-我想升级最后一次登录

因此,我创建了app/Listeners/UpdateLastLoginOnLogin.php

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',
    ],
];