Php 按照执行Laravel本机邮件验证的步骤,将出现一个问题

Php 按照执行Laravel本机邮件验证的步骤,将出现一个问题,php,laravel,mongodb,email-verification,jenssegers-mongodb,Php,Laravel,Mongodb,Email Verification,Jenssegers Mongodb,遵循指南实现laravel的本机邮件验证。 给我带来了一个错误 请注意,我使用MongoDB,因此我使用的是Jensseger/laravel MongoDB包 这就是错误: Class App\User包含3个抽象方法,因此必须声明为抽象方法或实现其余方法(illumb\Contracts\Auth\MustVerifyEmail::hasVerifiedEmail,illumb\Contracts\Auth\MustVerifyEmail::markEmailAsVerified,illum

遵循指南实现laravel的本机邮件验证。 给我带来了一个错误

请注意,我使用MongoDB,因此我使用的是Jensseger/laravel MongoDB包

这就是错误:
Class App\User包含3个抽象方法,因此必须声明为抽象方法或实现其余方法(illumb\Contracts\Auth\MustVerifyEmail::hasVerifiedEmail,illumb\Contracts\Auth\MustVerifyEmail::markEmailAsVerified,illumb\Contracts\Auth\MustVerifyEmail::sendEmailVerificationNotification

我已经尝试在我的模型中实现这些方法,它们似乎解决了问题。但是它不会发送任何电子邮件

下面是我在我的User.php模型中实现的内容

    * Determine if the user has verified their email address.
    *
    * @return bool
    */
    public function hasVerifiedEmail()
    {}

    /**
    * Mark the given user's email as verified.
    *
    * @return bool
    */
    public function markEmailAsVerified()
    {}

    /**
    * Send the email verification notification.
    *
    * @return void
    */
    public function sendEmailVerificationNotification()
    {}
namespace App;

use App\Company;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Jenssegers\Mongodb\Auth\User as Authenticatable;

class User extends Authenticatable implements MustVerifyEmail
{
    use Notifiable;

    protected $connection = 'mongodb';
这是我的User.php模型

    * Determine if the user has verified their email address.
    *
    * @return bool
    */
    public function hasVerifiedEmail()
    {}

    /**
    * Mark the given user's email as verified.
    *
    * @return bool
    */
    public function markEmailAsVerified()
    {}

    /**
    * Send the email verification notification.
    *
    * @return void
    */
    public function sendEmailVerificationNotification()
    {}
namespace App;

use App\Company;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Jenssegers\Mongodb\Auth\User as Authenticatable;

class User extends Authenticatable implements MustVerifyEmail
{
    use Notifiable;

    protected $connection = 'mongodb';
这是我的web.php路由文件

Route::get('/', function () {
    return view('welcome');
});

Auth::routes(['verify' => true]);

Route::get('/home', 'HomeController@index')->name('home');
这是我的HomeController.php

    public function __construct()
    {
        $this->middleware(['auth','verified']);
    }
这是我的环境文件

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=25
MAIL_USERNAME=xxxxxxxxxxx
MAIL_PASSWORD=xxxxxxxxxxxx
MAIL_ENCRYPTION=tls
像这样的项目工作,但它不会发送电子邮件。我需要把逻辑放在User.php中的三个方法中吗?如果是,我应该放在它里面什么?我不知道,因为如果它是本机的,并且像SQL一样工作,我真的不知道如何让它在我的项目中工作 希望有人能解决这个问题。
谢谢

最简单的解决方案是实现trait
illighted\Auth\MustVerifyEmail
,它应该在那里,但是在Laravel文档中没有提到。您也可以像以前一样在模型中定义这些方法来覆盖它们。但是
hasveriedemail
markEmailAsVerified
方法应该有这样的功能me验证逻辑和返回基于的
bool

编辑
我还忘了提到方法
sendmailverificationnotification
应该包含
$this->notify(新通知\VerifyEmail);
否则它将不会使用应呈报特征,因此不会发送任何电子邮件。有关更多详细信息,请查看中的方法,

Hi@silensesys,感谢您的回答。如果使用Contracts\Auth\etc\MustverifyEmail和您提到的邮件(light\Auth\misverifyemail)我应该实现哪一个?无论如何,如果你转到你提到的文件,它是一个接口而不是特征,因此不可能在模型中使用它。你对如何完成逻辑方法有什么建议吗?您好,我提到的两个文件都是特征-我再次检查了它们。我建议同时实现特征和干涉ce。您可以导入特性,如
使用illumb\Auth\MustVerifyEmail作为MustVerifyEmailTrait
,然后在您的用户模型中使用它。或者,如果您不喜欢这个想法,您可以在Laravel Github上实现或复制MustVerifyEmail特性的粘贴内容到您的模型中。非常感谢我的朋友。它只实现了我的模型中有两个文件:)