Laravel:在Listeners上调用字符串上的成员函数send()

时间:2018-05-22 09:39:23

标签: laravel laravel-5.5

我在新用户注册时尝试pushnotification。当我在events上发起事件MemberNotificationEvents时,我创建了名为event(new MemberNotificationEvent($UserDetails));的{​​{1}} }流完全开始,但在signUpController一个MemberNotificationListener返回错误:

  

在字符串

上调用成员函数send()

我输入了public function handle(MemberNotificationEvent $event)的完整代码:

MemberNotificationListener

我的代码中有什么问题?

1 个答案:

答案 0 :(得分:2)

问题在于这一行:

$this->pushNotificationService = PushNotificationService::class;

执行SomeClass::class时,表示您提供的是班级名称 - 而不是实际班级。

因此,当您稍后执行$this->pushNotificationService->send(...)时,推送通知服务只是类名而不是服务类。

问题的第二部分是你需要一个实际的对象。 Laravel可以在构造函数中为您注入,然后您可以提供它。像这样:

public function __construct(PushNotificationService $service)
{
    $this->pushNotificationService = $service;
}