27
votes

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?

4

4 Answers

62
votes

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

13
votes
  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.
11
votes

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;
     ...
0
votes

To be clear, you have to do all of the following :

Add the Notifiable trait in your User mode.

use Illuminate\Notifications\Notifiable;

class User extends Model
{
     use SoftDeletes, Notifiable;

Add this in your app.php:

For your providers:

Illuminate\Notifications\NotificationServiceProvider::class,

In the aliases:

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

Thanks to Nijesh, Francisco and Bestmomo Momo for their parts of the answer, but I had to do all of the above.