定义Event Listener in a Class时,如果Class恰好在命名空间中,我应该如何使用Event::listen
方法定义侦听器?
namespace MyApp\Events;
class MyEventClass{
public function onUserCreated(){
Log::info('Event is fired');
}
}
Event::listen('myapp.createuser','MyApp\Events\MyEventClass@onUserCreated');
会抛出以下错误
Class MyApp\Events\MyEventClass does not exist
答案 0 :(得分:1)
您需要确保实际加载命名空间。 Aka,你的composer.json文件中的某个地方 - 你在告诉作曲家/ laravel这个名称空间所在的位置吗?如果没有,那是你的第一步。您通常需要将其添加到psr-0位置,如下所示:
"autoload": {
"psr-0": {
"MyApp": "src/"
}
}
这告诉laravel / composer你的命名空间“MyApp”的代码可以在src / MyApp找到(你的Events文件夹是其逻辑扩展名)。