Cómo personalizar la ruta de acceso del correo electrónico de restablecimiento de la cuchilla de la plantilla en Laravel 5.3?

La plantilla utilizada es: vendor/laravel/framework/src/Illuminate/Notifications/resources/views/email.blade.php

Me gustaría construir mi propio.

También, cómo cambiar el texto de este mensaje de correo electrónico predefinido en: vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php

public function toMail()
{
    return (new MailMessage)
        ->line([
            'You are receiving this email because we received a password reset request for your account.',
            'Click the button below to reset your password:',
        ])
        ->action('Reset Password', url('password/reset', $this->token))
        ->line('If you did not request a password reset, no further action is required.');
}

OriginalEl autor Syl | 2016-09-05

3 Comentarios

  1. 33

    Para cambiar la plantilla debe utilizar artesanal comando php artisan vendor:publish va a crear hoja de plantillas en su resources/views/vendor directorio. Para cambiar el texto del correo electrónico debe reemplazar el sendPasswordResetNotification método en su modelo de Usuario. Esto se describe aquí https://laravel.com/docs/5.3/passwords en de Correo electrónico de Restablecimiento de Personalización sección.

    Debe agregar nuevo método para su modelo de Usuario.

    public function sendPasswordResetNotification($token)
    {
        $this->notify(new ResetPasswordNotification($token));
    }
    

    y el uso de su propia clase para la notificación en lugar ResetPasswordNotification.

    ACTUALIZADO: para @lewis4u solicitud

    Instrucciones paso a paso:

    1. Para crear una nueva clase de Notificación, usted debe utilizar esta línea de comandos php artisan make:notification MyResetPassword . Se hará una nueva Clase de Notificación ‘MyResetPassword’ en app/Notificaciones directorio.

    2. agregar use App\Notifications\MyResetPassword; a su modelo de Usuario

    3. agregar nuevo método para su modelo de Usuario.

      public function sendPasswordResetNotification($token)
      {
          $this->notify(new MyResetPassword($token));
      }
      
    4. ejecutar php artisan comando php artisan vendor:publish --tag=laravel-notifications Después de ejecutar este comando, la notificación de correo plantillas estará ubicado en el resources/views/vendor/notificaciones directorio.

    5. Editar su MyResetPassword método de clase toMail() si quieres. Se describe aquí https://laravel.com/docs/5.3/notifications

    6. Editar tu correo electrónico hoja de la plantilla si desea. Es resources/views/vendor/notifications/email.blade.php

    Bono: Laracast video: https://laracasts.com/series/whats-new-in-laravel-5-3/episodes/9

    PS: Gracias @Garric15 por sugerencia acerca de php artisan make:notification

    También, para crear una nueva clase de Notificación, usted debe utilizar esta línea de comandos php artisan make:notification MyOwnResetPassword aquí

    OriginalEl autor Eugen Shevchenko

  2. 11

    Quería para elaborar una muy útil Eugen la respuesta, pero no tenía suficiente reputación para dejar un comentario.

    En caso de que usted como para tener su propia estructura de directorios, usted no tiene que utilizar la Hoja de plantillas publicado para views/vendor/notifications/... Cuando se crea una nueva clase de Notificación y empezar a construir su MailMessage clase, tiene un view() método que puede utilizar para anular la configuración predeterminada de puntos de vista:

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return (new MailMessage)
            ->view('emails.password_reset');
            //resources/views/emails/password_reset.blade.php will be used instead.
    }
    
    GRACIAS! Desperdicia toda la noche tratando de averiguar esto y fue así de fácil.. pff….

    OriginalEl autor Banandrew

  3. -1

    Además de la respuesta anterior para Laravel 5.6, aquí es más fácil pasar variables de una matriz a su costumbre de plantilla de correo electrónico.

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
    $url = url('/invoice/'.$this->invoice->id);
    
    return (new MailMessage)
                ->subject('Invoice Paid')
                ->markdown('emails.password_reset', ['url' => $url]);
    

    }

    https://laravel.com/docs/5.6/notifications

    OriginalEl autor Ofor Emma

Dejar respuesta

Please enter your comment!
Please enter your name here