【发布时间】:2021-12-27 17:18:35
【问题描述】:
我已按照docs 中列出的说明进行电子邮件验证。我的用户模型实现了 MustVerifyEmail 接口,我在创建用户后在我的控制器中触发事件。我还验证了我可以通过 Tinker 发送一封随机电子邮件,该电子邮件在 Mailhog 中有效。
我在我的 UserController 中创建了一个应该触发事件的测试路由,但它似乎没有被触发:
public function test()
{
Log::debug('testing email');
$user = User::find(1);
Log::debug($user);
event(new Registered($user));
Log::debug('event should have fired');
}
在 EventServiceProvider.php 中:
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
],
];
在我的用户模型中:
namespace App\Models;
use Laravel\Sanctum\HasApiTokens;
use Laravel\Jetstream\HasProfilePhoto;
use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\SoftDeletes;
use Laravel\Fortify\TwoFactorAuthenticatable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
class User extends Authenticatable implements MustVerifyEmail
{
...
它正在按预期写入日志,但没有电子邮件。我认为我没有遗漏文档中的任何步骤,而且我不确定如何进行故障排除。如何调试事件,或者我的实现中缺少什么?
【问题讨论】:
标签: laravel laravel-8 laravel-sail