web-dev-qa-db-fra.com

Laravel Emplacement du modèle de vérification de courrier électronique

J'ai lu dans la documentation à propos de la nouvelle fonctionnalité de laravel la vérification du courrier électronique. Où puis-je localiser le modèle de courrier électronique envoyé à l'utilisateur? Il ne montre pas ici: https://laravel.com/docs/5.7/verification#after-verifying-emails

2
Renzchler

En fait, ils n'utilisent ni lame ni modèle, ils créent une notification et écrivent du code pour cette notification.

2
Sachin Aghera

Laravel utilise cette méthode de VerifyEmail classe de notification pour envoyer un courrier électronique:

public function toMail($notifiable)
{
    if (static::$toMailCallback) {
        return call_user_func(static::$toMailCallback, $notifiable);
    }
    return (new MailMessage)
        ->subject(Lang::getFromJson('Verify Email Address'))
        ->line(Lang::getFromJson('Please click the button below to verify your email address.'))
        ->action(
            Lang::getFromJson('Verify Email Address'),
            $this->verificationUrl($notifiable)
        )
        ->line(Lang::getFromJson('If you did not create an account, no further action is required.'));
}

Méthode en code source .

Si vous souhaitez utiliser votre propre modèle de courrier électronique, vous pouvez étendre la classe de notification de base. 

1) Créer dans le fichier app/Notifications/VerifyEmail.php

<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\Facades\Lang;
use Illuminate\Auth\Notifications\VerifyEmail as VerifyEmailBase;

class VerifyEmail extends VerifyEmailBase
{
//    use Queueable;

    // change as you want
    public function toMail($notifiable)
    {
        if (static::$toMailCallback) {
            return call_user_func(static::$toMailCallback, $notifiable);
        }
        return (new MailMessage)
            ->subject(Lang::getFromJson('Verify Email Address'))
            ->line(Lang::getFromJson('Please click the button below to verify your email address.'))
            ->action(
                Lang::getFromJson('Verify Email Address'),
                $this->verificationUrl($notifiable)
            )
            ->line(Lang::getFromJson('If you did not create an account, no further action is required.'));
    }
}

2) Ajouter au modèle de l'utilisateur:

use App\Notifications\VerifyEmail;

et

/**
 * Send the email verification notification.
 *
 * @return void
 */
public function sendEmailVerificationNotification()
{
    $this->notify(new VerifyEmail); // my notification
}

Aussi, si vous avez besoin d'un modèle de lame:

laravel générera toutes les vues de vérification de courrier électronique nécessaires lorsque la commande make:auth est exécutée. Cette vue est placée dans resources/views/auth/verify.blade.php. Vous êtes libre de personnaliser cette vue comme nécessaire pour votre application.

La source .

De plus, si vous voulez traduire un courrier standard VerifyEmail (ou autre où utilisez Lang :: fromJson (...)), vous devez créer un nouveau fichier Json dans resources/lang/et le nommer ru.json, par exemple . Il peut contenir (resources/lang/ru.json) le texte ci-dessous et doit être valide.

{
  "Verify Email Address" : "Подтверждение email адреса"
}
0
kotoFF