我收到了致命错误:第41行的/home/vagrant/Projects/MyProject/bootstrap/start.php中找不到类'事件'
这是第41行:
Event::listen('auth.login', function($user) {
// some action
});
我试过像这样的命名空间:
Laravel\Event::listen
但这不起作用。我在这里缺少什么?
答案 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
创建该文件,也可以创建服务提供者。