按照步骤实施 Laravel 本机邮件验证带来问题
Following the steps to implement Laravel native mail verification bring to an issue
按照指南实现 laravel 的本机邮件验证。
给我带来错误。
请注意,我使用 MongoDB,因此我使用 Jensseger/laravel-mongodb 包
这是错误:
Class App\User contains 3 abstract methods and must therefore be declared abstract or implement the remaining methods (Illuminate\Contracts\Auth\MustVerifyEmail::hasVerifiedEmail, Illuminate\Contracts\Auth\MustVerifyEmail::markEmailAsVerified, Illuminate\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()
{}
这是我的 User.php 模型
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 一样工作,我真的不知道如何让它在我的项目中工作
希望有人对此有解决方案。
谢谢
最简单的解决方案是实现应该存在的特征 Illuminate\Auth\MustVerifyEmail
,但是 Laravel 文档中并未提及。您还可以通过在模型中定义这些方法来覆盖它们。但是 hasVerifiedEmail
和 markEmailAsVerified
方法应该有一些验证逻辑和 return bool
基于 the API。
编辑:
我也忘了提到方法 sendEmailVerificationNotification
应该包含 $this->notify(new Notifications\VerifyEmail);
否则它不会使用 Notifiable 特性,因此不会发送任何电子邮件。有关详细信息,请查看 Laravel framework repository、
中的方法
按照指南实现 laravel 的本机邮件验证。 给我带来错误。
请注意,我使用 MongoDB,因此我使用 Jensseger/laravel-mongodb 包
这是错误:
Class App\User contains 3 abstract methods and must therefore be declared abstract or implement the remaining methods (Illuminate\Contracts\Auth\MustVerifyEmail::hasVerifiedEmail, Illuminate\Contracts\Auth\MustVerifyEmail::markEmailAsVerified, Illuminate\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()
{}
这是我的 User.php 模型
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 一样工作,我真的不知道如何让它在我的项目中工作 希望有人对此有解决方案。 谢谢
最简单的解决方案是实现应该存在的特征 Illuminate\Auth\MustVerifyEmail
,但是 Laravel 文档中并未提及。您还可以通过在模型中定义这些方法来覆盖它们。但是 hasVerifiedEmail
和 markEmailAsVerified
方法应该有一些验证逻辑和 return bool
基于 the API。
编辑:
我也忘了提到方法 sendEmailVerificationNotification
应该包含 $this->notify(new Notifications\VerifyEmail);
否则它不会使用 Notifiable 特性,因此不会发送任何电子邮件。有关详细信息,请查看 Laravel framework repository、