我正在尝试将Laravel Twitter Channel Notification package安装到使用Laravel 5.3和PHP 7.1的应用程序中。我创建了最简单的测试(转到/ tweet路由并向第一个用户发送通知)以验证它应该正在工作。相反,我收到以下错误:
无法解析的依赖关系解析[参数#0 [ $ consumerKey]]在班级Abraham \ TwitterOAuth \ TwitterOAuth
我在other related SO posts中读到这是因为Laravel的IoC不知道要传递什么,因为构造函数(我猜的包)不是类型提示。由于这是一个包,我不确定解决这个问题的最佳方法。我可以覆盖通知类中的构造函数吗?下面是我的测试NotificationClass。
<?php
namespace app\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use NotificationChannels\Twitter\TwitterChannel;
use NotificationChannels\Twitter\TwitterMessage;
class TweetNotification extends Notification
{
use Queueable;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return [TwitterChannel::class];
}
public function toTwitter($notifiable) {
return new TwitterStatusUpdate('Laravel notifications are awesome!');
}
}
答案 0 :(得分:0)
我会在AppServiceProvider的register方法中绑定依赖接口。看看这里:https://laravel.com/docs/5.3/container#binding-interfaces-to-implementations