Php Laravel 5.7对新创建的用户发送电子邮件验证
基于此,当用户自行注册时,您可以轻松创建用户电子邮件验证,但是当管理员为其用户创建帐户时,如何发送电子邮件验证 我已经尝试过这种方法Php Laravel 5.7对新创建的用户发送电子邮件验证,php,laravel,email-verification,Php,Laravel,Email Verification,基于此,当用户自行注册时,您可以轻松创建用户电子邮件验证,但是当管理员为其用户创建帐户时,如何发送电子邮件验证 我已经尝试过这种方法 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Foundation\Auth\VerifiesEmails; class TeacherController ex
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Foundation\Auth\VerifiesEmails;
class TeacherController extends Controller
{
use VerifiesEmails;
... // Other basic functions
public function store(Request $request)
{
$rules = [
'first_name' => ['string', 'required', 'max:255'],
'last_name' => ['string', 'nullable', 'max:255'],
'email' => ['string', 'required', 'email', 'max:255', 'unique:users'],
'password' => ['string', 'required', 'min:6', 'confirmed'],
];
$request->validate($rules);
$teacher = \App\User::create([
'first_name' => $request->input('first_name'),
'last_name' => $request->input('last_name'),
'email' => $request->input('email'),
'password' => Hash::make($request->input('password')),
'role' => 'teacher',
]);
$teacher->sendEmailVerificationNotification();
return redirect()->route('teachers');
}
... // Other basic functions
}
在您的EventServiceProvider
类中,您是否为已注册的事件注册了侦听器
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
],
];
别忘了在顶部导入:
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
在您的EventServiceProvider
类中,您是否为已注册事件注册了侦听器
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
],
];
别忘了在顶部导入:
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
让我知道你在使用什么本地服务器和other@Krishnakushwaha是的,我使用的是本地服务器,也使用望远镜。请告诉我您使用的是本地服务器和望远镜other@Krishnakushwaha是的,我使用本地服务器,也使用望远镜是的,我已经这样做了,但我注意到sendmailverificationnotification()
处理已注册用户,但刚创建的用户已被视为已注册。下面是SendEmailVerificationNotification.php content公共函数句柄(注册的$event){if($event->MustVerifyEmail的用户实例&!$event->user->hasvifiedEmail()){$event->user->SendEmailVerificationNotification();}
对于已经注册的用户,一旦他们登录,如果您使用经过验证的中间件包围了路由,它将向它们显示发送带有链接的电子邮件的页面。所以我提到的那个应该对新用户有用。是的,当他们尝试登录时,首先需要重新发送电子邮件验证,但我认为这并不漂亮。所以我想,只要管理员创建一个帐户,电子邮件验证将发送到新创建的帐户电子邮件地址,这就是为什么你应该注册的侦听器。但是,如果管理员正在注册一名教师,他们如何知道密码?即使他们收到一封电子邮件来验证他们的帐户,他们也需要能够登录到他们的帐户?您是否出于某种原因覆盖mail.php
中的to
配置以将邮件发送到admin@admin.com
?他们将获得附加到电子邮件的密码,但现在我希望应用程序为每个创建的用户发送电子邮件验证(不是从登录)。不,我不会将电子邮件改写为admin@admin.com
。它已发送到admin@admin.com
是因为当前登录的用户。如果我想使用默认的laravel电子邮件验证,我是否遗漏了什么?因为他们的文档没有告诉我们如何在另一个控制器上使用它,等等。是的,我已经这样做了,但是我注意到sendmailverificationnotification()
处理注册用户,但是刚刚创建的用户已经被视为注册用户。下面是SendEmailVerificationNotification.php content公共函数句柄(注册的$event){if($event->MustVerifyEmail的用户实例&!$event->user->hasvifiedEmail()){$event->user->SendEmailVerificationNotification();}
对于已经注册的用户,一旦他们登录,如果您使用经过验证的中间件包围了路由,它将向它们显示发送带有链接的电子邮件的页面。所以我提到的那个应该对新用户有用。是的,当他们尝试登录时,首先需要重新发送电子邮件验证,但我认为这并不漂亮。所以我想,只要管理员创建一个帐户,电子邮件验证将发送到新创建的帐户电子邮件地址,这就是为什么你应该注册的侦听器。但是,如果管理员正在注册一名教师,他们如何知道密码?即使他们收到一封电子邮件来验证他们的帐户,他们也需要能够登录到他们的帐户?您是否出于某种原因覆盖mail.php
中的to
配置以将邮件发送到admin@admin.com
?他们将获得附加到电子邮件的密码,但现在我希望应用程序为每个创建的用户发送电子邮件验证(不是从登录)。不,我不会将电子邮件改写为admin@admin.com
。它已发送到admin@admin.com
是因为当前登录的用户。如果我想使用默认的laravel电子邮件验证,我是否遗漏了什么?因为他们的文档没有告诉我们如何将它用于其他控制器等等。