Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.7对新创建的用户发送电子邮件验证_Php_Laravel_Email Verification - Fatal编程技术网

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电子邮件验证,我是否遗漏了什么?因为他们的文档没有告诉我们如何将它用于其他控制器等等。