[英]Laravel Auth count user login
我使用Laravel / Auth安装了Laravel。
我如何计算用户登录帐户的频率?
我试图找到updated_at函数来添加一个递增命令来增加计数。
您可以使用事件来完成它。 有关事件的更多信息,请参见Laravel文档。
您应该在User
模型及其对应的db中添加一个新的属性loginCount
。 确保在创建时, loginCount
字段的默认值设置为0
。
要在用户登录时增加它,可以创建一个监听auth.login
事件的监听器:
在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' ); } }
将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.