laravel事件和监听
一、注册事件和监听器,修改事件服务提供者EventServiceProvider
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
],
'App\Events\OrderPost' => [
'App\Listeners\SendEmailToOrderUser',
],
];
二、生成事件和监听器
php artisan event:generate
三、修改事件文件OrderPost,
public $order;
public $express_type;
public $express_no;
public function __construct($order,$express_type,$express_no)
{
$this->order = $order;
$this->express_type = $express_type;
$this->express_no = $express_no;
}
四、修改监听器 SendEmailToOrderUser
public function handle(OrderPost $event)
{
$event->order->express_type = $event->express_type;
$event->order->express_no = $event->express_no;
$event->order->status = 3;
$event->order->save();
//发货之后,邮件提醒
Mail::to($event->order->user)->queue(new \App\Mail\OrderPost($event->order));
}
五、修改控制器文件
//使用事件辅助函数分发
event(new \App\Events\OrderPost(
$order,
$request->input('express_type'),
$request->input('express_no')
));
或者
//使用事件分发
\App\Events\OrderPost::dispatch(
$order,
$request->input('express_type'),
$request->input('express_no')
);

浙公网安备 33010602011771号