Laravel 事件、监听与邮件通知

23 篇文章 0 订阅

1、先绑定事件与监听者:

app/Providers/EventServiceProvider.php

 protected $listen = [

        'App\Events\UserLogin' => [
            'App\Listeners\MailAdminUserLogin',
        ],
]

 

2、并创建事件和监听器:

PHP artisan  event:generate

 分别生成了2个文件:app/Events/UserLogin.php和 app/Listeners/MailAdminUserLogin.php。

event:generate 命令省去了创建事件 make:event 和监听者 make:listener 命令,并已经将事件与监听做了关联!

3、触发事件,用户登录控制器:

app/Http/Controllers/Auth/LoginController.php

改写AuthenticatesUsers类:

   ...
use App\Events\UserLogin;
use Illuminate\Http\Request;
...



 /**
     * The user has been authenticated.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  mixed  $user
     * @return mixed
     */
    protected function authenticated(Request $request,$user)
    {
        //dd($user);
     event(new UserLogin($user));
    }

4、事件接收用户参数

app/Events/UserLogin.php
use App\Models\User;

...

class UserLogin
{

   ...

    public $user;

    public function __construct(User $user)
    {
       $this->user=$user;
    }

 

侦听器

app/Listeners/MailAdminUserLogin.php:

    public function handle(UserLogin $event)
    {
    dd($event);

    }

用户注册会打印用户对象。

5、监听器触发邮件通知

app/Listeners/MailAdminUserLogin.php

 ...
use App\Notifications\MailTestNotification;
...

   public function handle(UserLogin $event)
    {
     // dd($event);
        new MailTestNotification($event);
    }

有关邮件通知的类,请看这里:https://blog.csdn.net/running8/article/details/84312630

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值