在laravel 6中成功注册后自动登录获得错误

在laravel 6中成功注册后自动登录获得错误,laravel,Laravel,在laravel 6中成功注册后,我在尝试自动登录时出错,并出现以下错误 传递给Illumb\Auth\SessionGuard::login()的参数1必须实现接口Illumb\Contracts\Auth\Authenticatable,给定null,在中调用 我的注册控制器是 class RegisterController extends Controller { use RegistersUsers; protected $redirectTo = RouteServiceProv

在laravel 6中成功注册后,我在尝试自动登录时出错,并出现以下错误

传递给Illumb\Auth\SessionGuard::login()的参数1必须实现接口Illumb\Contracts\Auth\Authenticatable,给定null,在中调用

我的注册控制器是

class RegisterController extends Controller
{

use RegistersUsers;

protected $redirectTo = RouteServiceProvider::HOME;

public function __construct()
{
     $this->middleware('guest');
   // $this->middleware(['auth','verified']);
}

protected function validator(array $data)
{
    return Validator::make($data, [
     'name' => ['required', 'min:3'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
    ]);
}
protected function create(array $data)
{

    $username = slugify($data['name'])."-".mt_rand(10000, 99999);
    $user =  User::create([
        'name' => $data['name'],
        'username' => $username,
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'email_token' => base64_encode($data['email']),

    ]);

    Auth::loginUsingId($user->id);

}

}
用户模型

<?php

namespace App;

 use Illuminate\Contracts\Auth\MustVerifyEmail;
 use Illuminate\Foundation\Auth\User as Authenticatable;
 use Illuminate\Notifications\Notifiable;
 use App\Jobs\SendEmailJob;

class User extends Authenticatable implements MustVerifyEmail
{
use Notifiable;

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [


   'email','name','password','username','picture',
   'ip_address','email_verified_at','email_token','verified'
];




/**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
protected $hidden = [
    'password', 'remember_token',
];

/**
 * The attributes that should be cast to native types.
 *
 * @var array
 */
protected $casts = [
    'email_verified_at' => 'datetime',
];


function socialProviders(){

    return $this->hasMany(socialProvider::class);
}


  // This is the code define in the sendEmailVerificationNotification
  public function sendEmailVerificationNotification()
   {
     SendEmailJob::dispatch($this);
   }
 }

您已经覆盖了注册逻辑,但是忽略了一个事实,即
创建
方法需要返回一个
App\User
的实例,或者至少是一个实现了
可验证
的类

看一看,;您将看到docblock显示正在返回
App\User
的实例,并且原始实现返回
User::create()
调用的结果

要使自定义方法正常工作,请按如下方式进行更新:

protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'username' => slugify($data['name'])."-".mt_rand(10000, 99999);,
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'email_token' => base64_encode($data['email']),

    ]);
}

Laravel将负责用户的登录。

您的用户模型是否实现了
可验证的
界面?更新的用户模型请检查
实现MustVerifyEmail
从用户模型中删除此项并重试。相同错误!!!!!