Поэтому я пытаюсь отправить персонализированное уведомление, когда пользователь обновляет свой пароль.Файл SendPasswordResetEmails.php находится в папке vendor, и, насколько мне известно, я не должен напрямую изменять код, поскольку он может быть изменен в обновлениях, а что нет.Поэтому я сделал контроллер с именем ChangePasswordController.php и скопировал некоторые методы SendPasswordResetEmails.php для отправки электронной почты со ссылкой для сброса.
В моем новом контроллере у меня есть следующее:
/**
* Send a change link to the given user.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
*/
public function changePassword(Request $request) {
$request['email'] = Auth::user()->email;
$request['update'] = true; // user wishes to update/change their password
$response = $this->broker()->sendResetLink(
['email' => Auth::user()->email]
);
return $response == Password::RESET_LINK_SENT
? $this->sendResetLinkResponse($response)
: $this->sendResetLinkFailedResponse($request, $response);
}
/**
* Get the response for a successful password reset link.
*
* @param string $response
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
*/
protected function sendResetLinkResponse($response)
{
return back()->with('status', trans($response));
}
/**
* Get the response for a failed password reset link.
*
* @param \Illuminate\Http\Request $request
* @param string $response
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
*/
protected function sendResetLinkFailedResponse(Request $request, $response)
{
return back()->withErrors(
['email' => trans($response)]
);
}
/**
* Get the broker to be used during password reset.
*
* @return \Illuminate\Contracts\Auth\PasswordBroker
*/
public function broker()
{
return Password::broker();
}
В методе changePassword обратите внимание на строку в sendResetLink:
$response = $this->broker()->sendResetLink(
['email' => Auth::user()->email]
);
Как я могу создать собственный метод sendChangeLink вместо sendResetLink?Я не совсем понимаю, как работает эта часть $ this-> broker (), поэтому я не хочу с ней связываться, но, возможно, кто-то здесь может помочь.