Изменение класса «VerifyEmail» для настраиваемого параметра в проверочной ссылке в почте для метода verifyUrl () в проверочном письме в laravel 5.7

письмо с подтверждением, которое поставляется с laravel 5.7. Как и где мне нужно его поменять? Я искал по всему Интернету, но, поскольку это новая функция в 5.7, я не смог найти ответа. Не могли бы вы мне помочь? Заранее спасибо.

в основном этот класс находится в Illuminate \ Auth \ Notifications

я хочу переопределить один из методов:

 class VerifyEmail extends Notification
        {
          // i wish i could override this method
           protected function verificationUrl($notifiable)
            {
             return URL::temporarySignedRoute('verification.verify', Carbon::now()->addMinutes(60), ['id' => $notifiable->getKey()]);
            } 
        }
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
3
0
2 832
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поскольку ваша модель User использует Illuminate\Auth\MustVerifyEmail, вы можете переопределить метод sendEmailVerificationNotification, который является методом, который уведомляет созданного пользователя, вызывая метод notify и передает в качестве параметра новый экземпляр класса Notifications\MustVerifyEmail.

Вы можете создать собственное уведомление, которое будет передано как параметр в $this->notify() в методе sendEmailVerificationNotification в вашей модели User:

public function sendEmailVerificationNotification()
{
    $this->notify(new App\Notifications\CustomVerifyEmail);
}

А в уведомлении CustomVerifyEmail вы можете указать route, через который будет выполняться проверка, и все параметры, которые она будет принимать.

Когда новый пользователь регистрируется, событие Illuminate\Auth\Events\Registered генерируется в App\Http\Controllers\Auth\RegisterController, и это событие имеет слушателя Illuminate\Auth\Listeners\SendEmailVerificationNotification, который зарегистрирован в App\Providers\EventServiceProvider:

protected $listen = [
    Registered::class => [
        SendEmailVerificationNotification::class,
    ]
];

Этот слушатель проверяет, является ли $user, который передается в качестве параметра new Registered($user = $this->create($request->all())) в аутентификации Laravel по умолчанию App\Http\Controllers\Auth\RegisterController, экземпляром Illuminate\Contracts\Auth\MustVerifyEmail, который является чертой, которую Laravel предлагает использовать в модели App\User, когда вы хотите предоставить проверку электронной почты по умолчанию и проверить также то, что $user еще не проверен. Если все это пройдет, он вызовет метод sendEmailVerificationNotification для этого пользователя:

if ($event->user instanceof MustVerifyEmail && !$event->user->hasVerifiedEmail()) {
        $event->user->sendEmailVerificationNotification();
}

работает нормально! после внесения вышеуказанных изменений для пользовательской проверки электронной почты @YvesKipondo

jay thanki 25.09.2018 06:12

Другие вопросы по теме