为什么Laravel 5.4在这里抛出Type错误?

时间:2017-02-06 10:32:59

标签: events laravel-5 laravel-5.4

我在App \ Providers \ EventServiceProvider中有这个:

protected $listen = [
    'Illuminate\Auth\Events\Login' => [
      'App\Listeners\UserLogin'
    ],
];

这在我的App \ Listeners \ UserLogin.php中:

use App\Events\UserLoggedIn;

class UserLogin
{
  public function handle(UserLoggedIn $event)
  {
    ...
  }
}

但是当我尝试登录时,我收到此错误:

Type error: Argument 1 passed to App\Listeners\UserLogin::handle() must be an instance of App\Events\UserLoggedIn, instance of Illuminate\Auth\Events\Login given.

所以有人能告诉我为什么会出现这个错误吗?

1 个答案:

答案 0 :(得分:1)

您的protected $listen数组正在调用错误的类。

你需要给它一个事件类的名称,然后是一个监听器列表。

protected $listen = [
   'App\Events\UserLoggedIn' => [
     'App\Listeners\UserLogin'
   ],
];