substituir o modelo de 'reset' de senhas por um modelo personalizado laravel 5. 3

{[[2]} fiz o comando laravel para o sistema de autenticação, {[[[0]} fez o sistema de autenticação para a minha aplicação e quase tudo está a funcionar.

Agora quando eu uso o esqueci a senha e ele me envia um token para o meu e-mail id , eu vejo que o modelo contém laravel e algumas outras coisas que eu poderia querer editar ou ommit, para ser mais preciso , eu quero o meu modelo personalizado para ser usado lá.

eu olhei para os controladores e seus arquivos de origem, mas eu não consigo encontrar o modelo ou o código que está exibindo o html no e-mail.

Como faço isso ?

Como é que o mudo?

Este é o modelo padrão que vem do laravel para o correio. enter image description here

 8
Author: BOTJr., 2016-12-30

3 answers

Execute o seguinte comando no terminal e os dois modelos de E-mail serão copiados para a sua pasta de recursos/fornecedores/notificações. Então você pode modificar os modelos.

php artisan vendor:publish --tag=laravel-notifications

Pode ler mais sobre Notifications em Laravel Docs .

 11
Author: Farzin Farzanehnia, 2017-12-22 13:02:49

Apenas um aviso: para além da resposta anterior, existem passos adicionais se quiser modificar o linhas de notificação como You are receiving this..., etc. Abaixo está um guia passo a passo.

Terá de anular o valor por omissão sendPasswordResetNotification Método no seu modelo User.

Porquê? Porque as linhas são retiradas de Illuminate\Auth\Notifications\ResetPassword.php. Modificá-lo no núcleo significa que suas alterações são perdidas durante uma atualização de Laravel.

Para fazer isto, adicione o seguinte ao seu o teu modelo.

use App\Notifications\PasswordReset; // Or the location that you store your notifications (this is default).

/**
 * Send the password reset notification.
 *
 * @param  string  $token
 * @return void
 */
public function sendPasswordResetNotification($token)
{
    $this->notify(new PasswordReset($token));
}
Por último, criar essa notificação:
php artisan make:notification PasswordReset

E exemplo do conteúdo da presente notificação:

/**
 * The password reset token.
 *
 * @var string
 */
public $token;

/**
 * Create a new notification instance.
 *
 * @return void
 */
public function __construct($token)
{
    $this->token = $token;
}

/**
 * Get the notification's delivery channels.
 *
 * @param  mixed  $notifiable
 * @return array
 */
public function via($notifiable)
{
    return ['mail'];
}

/**
 * Build the mail representation of the notification.
 *
 * @param  mixed  $notifiable
 * @return \Illuminate\Notifications\Messages\MailMessage
 */
public function toMail($notifiable)
{
    return (new MailMessage)
        ->line('You are receiving this email because we received a password reset request for your account.') // Here are the lines you can safely override
        ->action('Reset Password', url('password/reset', $this->token))
        ->line('If you did not request a password reset, no further action is required.');
}
 21
Author: camelCase, 2016-12-30 19:16:05

Você também pode conseguir isto, construindo o seu próprio modelo de E-mail e enviando a ligação de Reset por si mesmo, usando o php mail() ou o Laravel Mail Facade mas primeiro terá de criar o símbolo de reset

1) use Illuminate\Contracts\Auth\PasswordBroker;

  $user = User::where('email', $email)->first();
                 if ($user) {
                    //so we can have dependency 
                    $password_broker = app(PasswordBroker::class);
                    //create reset password token 
                    $token = $password_broker->createToken($user); 

                    DB::table('password_resets')->insert(['email' => $user->email, 'token' => $token, 'created_at' => new Carbon]); 

//Send the reset token with your own template
//It can be like $link = url('/').'/password/reset/'.$token;

                }
 0
Author: F.E Noel Nfebe, 2017-07-27 22:02:13