Php 按照执行Laravel本机邮件验证的步骤,将出现一个问题
遵循指南实现laravel的本机邮件验证。 给我带来了一个错误 请注意,我使用MongoDB,因此我使用的是Jensseger/laravel MongoDB包 这就是错误: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
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特性的粘贴内容到您的模型中。非常感谢我的朋友。它只实现了我的模型中有两个文件:)