Laravel: {closure}() должен быть экземпляром IlluminateMailMessage

#php #laravel #laravel-8

#php #laravel #laravel-8

Вопрос:

Я пытаюсь создать пользовательский забытый пароль, но когда я пытаюсь отправить электронное письмо, оно выдает эту ошибку

 Argument 1 passed to AppHttpControllersAuthPasswordController::AppHttpControllersAuth{closure}() must be an instance of IlluminateMailMessage, instance of AppModelsUser given, called in D:laragonwwwlaravel8vendorlaravelframeworksrcIlluminateAuthPasswordsPasswordBroker.php
 

Я пробовал использовать эти два метода

         $response = Password::sendResetLink($request->only('email'), function (Message $message) {
        
            $message->from('support@test.com', Config::get('APP_NAME'));
            $message->subject($this->getEmailSubject());
            });
 

Или

 public function postEmail(Request $request){
          $response = $this->broker()->sendResetLink(
            $request->only('email'),
            function (Message $message) {
                $message->from('support@test.com', Config::get('APP_NAME'));
                $message->subject($this->getEmailSubject());
            }
        );
}
public function broker()
    {
            return IlluminateSupportFacadesPassword::broker();
     }
 

Idk как сделать так, чтобы анонимная функция стала экземпляром message

Подробная информация

Попытка обновления с laravel 5.1 до 8

Комментарии:

1. это laravel 5 или laravel 8? в случае изменения тега публикации.

2. @GiacomoM это laravel 8, я пытаюсь обновить его с 5.1

3. У IlluminateAuthPasswordsPasswordBroker::sendResetLink() него должно быть закрытие с $user (экземпляр App Models User) в качестве первого параметра и $token в качестве второго параметра. Если вы хотите настроить ссылку уведомления по электронной почте для отправки пароля, вы можете переопределить sendPasswordResetNotification($token) ее в своем классе модели пользователя