致命错误:在/bootstrap/start.php中找不到类“事件”

时间:2014-12-08 15:35:45

标签: laravel laravel-4

我收到了致命错误:第41行的/home/vagrant/Projects/MyProject/bootstrap/start.php中找不到类'事件'

这是第41行:

Event::listen('auth.login', function($user) {
    // some action
});

我试过像这样的命名空间:

Laravel\Event::listen

但这不起作用。我在这里缺少什么?

2 个答案:

答案 0 :(得分:3)

没有理由在bootstrap/start.php中添加您的事件监听器。该文件的目的是创建Laravel应用程序并检测环境。如果您想拥有全局的事件监听器,您可以创建一个app/events.php文件,您可以在其中放置代码:

Event::listen('auth.login', function($user) {
    // some action
});

然后将文件包含在app/start/global.php中,如下所示:

require app_path().'/events.php';

答案 1 :(得分:0)

似乎bootstrap/start.php是创建laravel应用程序实例的文件。这意味着在加载该文件之后,实例化包括Event class在内的所有类。因此,如果您尝试访问那里的Event class,则会抛出错误,因为该类尚未实例化。

对于快速修复,您可以在app/start/global.php注册您的活动,但正如@Bogdan所说,在那里注册您的活动并不理想。您可以为事件侦听器创建专用文件,在require中为app/start/global.php创建该文件,也可以创建服务提供者。