如何为我的所有模型添加相同的事件监听器?

问题描述 投票:1回答:1

假设我有模型ABCD。现在我想听他们的created事件。通常,我会去我的AppServiceProvider并为每个模型添加事件,如下所示:

public function boot()
{
    A::created(function ($a) {
        //some code
    });

    B::created(function ($b) {
        //some code
    });

    C::created(function ($c) {
        //some code
    });

    D::created(function ($d) {
        //some code
    });
}

代码是一样的,我想让这个过程更快,因为我实际上有70个++模型。那么有没有办法将单个函数绑定到我所有模型的created事件而不必逐个执行?

编辑:结果我想要的已经在this question,但由于它已经被回答我不想删除它。

eloquent laravel-5.3
1个回答
0
投票

创建一个基础Model类并继承你的模型,A,B,C和D.你的基本模型的save方法将触发一个事件,比如model_create,你将只在一个地方监听该事件。这样您就可以为您的所有模型处理事件。

© www.soinside.com 2019 - 2024. All rights reserved.