调用未定义的方法 Illuminate\Database\Query\Builder::notify()

Call to undefined method Illuminate\Database\Query\Builder::notify()

在忘记密码中提交请求时 Laravel 5.3.6 中的问题。

错误详情

Call to undefined method Illuminate\Database\Query\Builder::notify()

问题在以下文件中:

vendor\laravel\framework\src\Illuminate\Auth\Passwords\PasswordBroker.php

第69行代码如下

$user->sendPasswordResetNotification(
    $this->tokens->create($user)
);

函数:发送重置链接

它在 Laravel 5.2 中运行良好,但在 5.3.6 版本中似乎无法运行。你遇到过这个问题吗?

您必须在 User 模型中添加 Illuminate\Notifications\Notifiable 特征。

  1. 在您的用户模式中添加 Notifiable 特征。

    Illuminate\Notifications\Notifiable

  2. 将此添加到您的 app.php:

对于您的提供者:

Illuminate\Notifications\NotificationServiceProvider::class,

在别名中:

'Notification' => Illuminate\Support\Facades\Notification::class,

  1. 记得在 config/mail.php 文件中更新 from 设置。

就我而言,按照其他答案中给出的步骤进行操作后,我仍然遇到错误。

BadMethodCallException: Call to undefined method Illuminate\Database\Query\Builder::notify()

我失踪了

use Notifiable

...
use Illuminate\Notifications\Notifiable;
class User extends Model
{
     use SoftDeletes, Notifiable;
     ...

要明确,您必须执行以下所有操作:

在您的用户模式中添加 Notifiable 特征。

use Illuminate\Notifications\Notifiable;

class User extends Model
{
     use SoftDeletes, Notifiable;

将此添加到您的 app.php 中:

对于您的提供者:

Illuminate\Notifications\NotificationServiceProvider::class,

在别名中:

'Notification' => Illuminate\Support\Facades\Notification::class,

感谢 Nijesh、Francisco 和 Bestmomo Momo 的部分回答,但我必须完成以上所有工作。