Laravel中的松弛通知错误参数太少

时间:2019-01-29 12:41:30

标签: laravel slack

我正在尝试在laravel项目中实现松弛通知。

我在控制器内部打电话给

$user->notify(new WorkAdded());

这里是WorkAdded

public function __construct()
{
    //
}

/**
 * Get the notification's delivery channels.
 *
 * @param  mixed  $notifiable
 * @return array
 */
public function via($notifiable)
{
    return ['slack'];
}


/**
 * Get the Slack representation of the notification.
 *
 * @param  mixed  $notifiable
 * @return SlackMessage
 */
public function toSlack($notifiable)
{
    return (new SlackMessage)
                ->content('TEST');
}

User类中,我添加了:

use Notifiable;

public function routeNotificationForSlack($notification)
{
    return 'https://hooks.slack.com/services/...';
}

但是当我调用notify函数时,出现以下错误:

  

类型错误:函数App \ User :: routeNotificationForSlack()的参数太少,在第30行的/Applications/MAMP/htdocs/gest/vendor/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php中传递了0恰好是1个

1 个答案:

答案 0 :(得分:0)

如果您使用的是Laravel 5.5或更低版本,则routeNotificationFor{driver}方法不会传递$notification实例。

只需将方法更改为以下内容即可

public function routeNotificationForSlack()
{
    return 'https://hooks.slack.com/services/...';
}

使用Laravel文档时,将屏幕右上方的下拉菜单更改为您使用的Laravel版本始终是一个好主意。