如何在Laravel 4中监听来自命名空间类的事件

时间:2014-04-24 14:51:31

标签: events namespaces laravel-4

Laravel 4

我正在尝试从命名空间中的类中侦听事件,但无法确定如何设置侦听器。

我有类似的东西:

namespace My\Namespace
class Person  extends \Illuminate\Database\Eloquent\Model
...

在另一个课程中,我试图用

来监听更新
Event::listen('My\Namespace\Person.updated', function($person)
{
    Debugbar::info(Event::firing());
});

但是永远不会被召唤。我已经尝试了很多不同的大小写变体,并在命名空间中放置了一个前导\但没有任何作用

如果我将听众改为

Event::listen('*.updated', function($person)
{
    Debugbar::info(Event::firing());
});

代码运行,调试输出为:eloquent.updated:My \ Namespace \ Person

我只需要知道使用什么名称代替*来使处理程序特定于命名空间类。

感谢。

1 个答案:

答案 0 :(得分:1)

如果您使用Eloquent将模型保存到数据库,则可能需要尝试:

Event::updated('yourcontroller@yourmethod');

我使用这种方法,它简单,干净,效果很好!

http://laravel.com/docs/eloquent#model-events