更改邮件中自定义参数的“VerifyEmail”class laravel 5.7 验证邮件中方法 verificationUrl() laravel 5.7
Changing the “VerifyEmail” class for custom parameter in verification link in mail for method verificationUrl() in verification email in laravel 5.7
laravel 5.7 随附的验证电子邮件。我需要如何以及在哪里更改它?我在网上找遍了,但是因为它是5.7的全新特性,所以我找不到答案。你能帮我吗?提前致谢。
基本上 class 在 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()]);
}
}
因为您的 User
模型使用 Illuminate\Auth\MustVerifyEmail
您可以覆盖方法 sendEmailVerificationNotification
,该方法通过调用方法 notify
来通知创建的用户并传递,作为参数,Notifications\MustVerifyEmail
class.
的新实例
您可以在 User
模型的 sendEmailVerificationNotification
方法中创建一个自定义通知,它将作为参数传递给 $this->notify()
:
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,
]
];
此侦听器检查在 Laravel 默认身份验证 App\Http\Controllers\Auth\RegisterController
中作为参数传递给 new Registered($user = $this->create($request->all()))
的 $user
是否是 [=30] 的实例=] 这是 Laravel 建议在 App\User
模型中使用的特征,当您想提供默认电子邮件验证并检查 $user
是否尚未验证时。如果全部通过,它将对该用户调用 sendEmailVerificationNotification
方法:
if ($event->user instanceof MustVerifyEmail && !$event->user->hasVerifiedEmail()) {
$event->user->sendEmailVerificationNotification();
}
laravel 5.7 随附的验证电子邮件。我需要如何以及在哪里更改它?我在网上找遍了,但是因为它是5.7的全新特性,所以我找不到答案。你能帮我吗?提前致谢。
基本上 class 在 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()]);
}
}
因为您的 User
模型使用 Illuminate\Auth\MustVerifyEmail
您可以覆盖方法 sendEmailVerificationNotification
,该方法通过调用方法 notify
来通知创建的用户并传递,作为参数,Notifications\MustVerifyEmail
class.
您可以在 User
模型的 sendEmailVerificationNotification
方法中创建一个自定义通知,它将作为参数传递给 $this->notify()
:
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,
]
];
此侦听器检查在 Laravel 默认身份验证 App\Http\Controllers\Auth\RegisterController
中作为参数传递给 new Registered($user = $this->create($request->all()))
的 $user
是否是 [=30] 的实例=] 这是 Laravel 建议在 App\User
模型中使用的特征,当您想提供默认电子邮件验证并检查 $user
是否尚未验证时。如果全部通过,它将对该用户调用 sendEmailVerificationNotification
方法:
if ($event->user instanceof MustVerifyEmail && !$event->user->hasVerifiedEmail()) {
$event->user->sendEmailVerificationNotification();
}