Короткий ответ:
Все, что вам нужно сделать, это позвонить event(new \Illuminate\Auth\Events\Registered($user));
Если это не сработает, возможно, вам нужно сначала настроить несколько вещей (см. Более длинный ответ).
Более длинный ответ:
Есть несколько вещей, которые вам понадобятся, чтобы добавить внутреннюю поддержку для проверки электронной почты пользователя.
Первый шаг - убедиться, что ваш * Модель 1012 * реализует правильные методы:
// app/User.php:
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable implements MustVerifyEmail {
// this provides:
// ->markEmailAsVerified(),
// ->hasVerifiedEmail(): bool
// ->sendEmailVerificationNotification()
use \Illuminate\Auth\MustVerifyEmail;
Есть хорошее встроенное событие, которое вы затем можете использовать, чтобы отправить электронное письмо пользователям после их регистрации. Вы можете активировать это вручную или как часть слушателя модели (здесь не обсуждается). Однако сначала это необходимо зарегистрировать в ваших слушателях событий. Для получения дополнительной информации см. Laravel Руководство по событиям .
// app/Providers/EventServiceProvider.php:
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider {
protected $listen = [
// ...
'Illuminate\Auth\Events\Registered' => [
'Illuminate\Auth\Listeners\SendEmailVerificationNotification',
],
После того, как эти две вещи будут выполнены, отправку подтверждающего письма можно будет сделать в любом месте вашего приложения:
// fire off the Registered event, so that new users get a verification email
event(new \Illuminate\Auth\Events\Registered($user));
Это будет работать, только если прослушиватель событий установлен и User
имеет правильную иерархию.
Обработчик событий (SendEmailVerificationNotification
) проверяет, является ли $user
MustVerifyEmail
это еще не подтверждено, и если это так, он вызывает $user->sendEmailVerificationNotification
, который запускает экземпляр \Illuminate\Auth\Notifications\VerifyEmail
.