我想在用户达到允许的最大登录次数时发送电子邮件通知(即用户被锁定)。
最好的方法是什么? 我在ThrottlesLogins类中看到了一个fireLockoutEvent方法,我应该监听那个事件吗?我应该在哪里做到这一点?
答案 0 :(得分:1)
是。为事件LockoutEvent
创建一个监听器。
php artisan make:listener LockoutEventListener
在文件夹app/Listeners/LockoutEventListener
下创建 LockoutEventListener.php 。然后在LockoutEvent
中将app/providers/EventServiceProvider.php
侦听器注册到应用程序。
<强> EventServiceProvider.php 强>
protected $listen = [
...
'Illuminate\Auth\Events\Lockout' => [
'App\Listeners\LockoutEventListener',
],
];
然后更新事件LockoutEvent
的处理程序方法。
<强> LockoutEventListener.php 强>
public function handle($event)
{
if ($event->request->has('email')) {
$user = User::where('email', $event->request->input('email'))->first();
if ($user && !$attemptEmailSent) {
Mail::to($user->email)->send(...);
}
}
}