Call to undefined method Illuminate\\Database\\Que

2019-04-18 01:30发布

问题:

Issue in Laravel 5.3.6 when submitted request in Forgot Password.

Error Details

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

Issue is in below file:

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

Line 69. Code is below

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

Function: sendResetLink

It was working fine in Laravel 5.2 and seems not working in 5.3.6 version. Have you faced this issue?

回答1:

You must add Illuminate\Notifications\Notifiable trait in User model.



回答2:

  1. Add the Notifiable trait in your User mode.

    Illuminate\Notifications\Notifiable

  2. Add this in your app.php:

For your providers:

Illuminate\Notifications\NotificationServiceProvider::class,

In the aliases:

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

  1. Remember to update your from settings in the config/mail.php file.


回答3:

In my case, I was still getting error after following steps given in other answers.

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

I was missing

use Notifiable

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