繁体   English   中英

Laravel Auth计数用户登录

[英]Laravel Auth count user login

我使用Laravel / Auth安装了Laravel。
我如何计算用户登录帐户的频率?
我试图找到updated_at函数来添加一个递增命令来增加计数。

您可以使用事件来完成它。 有关事件的更多信息,请参见Laravel文档。

您应该在User模型及其对应的db中添加一个新的属性loginCount 确保在创建时, loginCount字段的默认值设置为0

要在用户登录时增加它,可以创建一个监听auth.login事件的监听器:

  1. app\\Listeners创建UserEventListener

     namespace App\\Listeners; use App\\User; class UserEventListener { /** * Handle user login events. * * @param User $user * @param bool $remember */ public function onUserLogin(User $user, $remember) { $user->loginCount++; $user->save(); } /** * Register the listeners for the subscriber. * * @param Illuminate\\Events\\Dispatcher $events */ public function subscribe($events) { $events->listen( 'auth.login', 'App\\Listeners\\UserEventListener@onUserLogin' ); } } 
  2. UserEventListener订阅到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 = [ 'App\\Events\\SomeEvent' => [ 'App\\Listeners\\EventListener', ], ]; /** * The subscriber classes to register. * * @var array */ protected $subscribe = [ 'App\\Listeners\\UserEventListener', ]; /** * Register any other events for your application. * * @param \\Illuminate\\Contracts\\Events\\Dispatcher $events * @return void */ public function boot(DispatcherContract $events) { parent::boot($events); } } 

您将需要在用户表中创建一个新字段。 之后,看一下并覆盖控制器中的postLogin函数。 有关此功能的更多信息,请参见Illuminate\\Foundation\\Auth\\AuthenticatesAndRegistersUsers

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM