laravel - Laravel 覆盖一个包事件
问题描述
是否可以覆盖包提供的事件?
例如
通过 composer 安装到供应商目录中的包“laravel/cashier-mollie”有一个事件 laravel\cashier-mollie\src\Events\OrderPaymentFailed
我想要做的是在触发此事件时更新我的数据库中的特定字段。
有任何想法吗?
解决方案
您可以为事件添加自己的侦听器app/Providers/EventServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Event;
use Laravel\Cashier\Events\OrderPaymentFailed;
use App\Listeners\OrderPaymentsFailedListener;
class EventServiceProvider extends ServiceProvider
{
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
OrderPaymentFailed::class => [
// Your custom listener
OrderPaymentsFailedListener::class,
],
];
/**
* Register any events for your application.
*
* @return void
*/
public function boot()
{
parent::boot();
//
}
}
推荐阅读
- c - 如何关闭跨叉继承的子进程中的文件描述符。父进程是否保持打开状态
- python - 组合成对的依赖numpy
- typescript - Firebase Analytics logEvent 打字稿错误
- elasticsearch - 使用 ElasticSearch 非法批量导入
- maple - 如何实现 u^k = M^k u_0?
- python - 如何为 queue.SimpleQueue 创建类型别名?
- raspberry-pi - Linux 图像上的 Uno 平台应用程序未显示
- sql - 使用来自不同表的信息更新表并增加增量
- r - 如何以图形方式表示分位数函数并在图形/绘图上表示其中位数?
- amazon-web-services - 为什么 CloudFormation 拆除会删除我的安全组入口?