You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9中Route [verification.verify]未定义问题求助

解决Laravel 9中Route [verification.verify]未定义的问题

核心原因

出现该错误是因为Laravel邮箱验证的核心路由未被正确注册到应用中,即便按官方文档操作,也可能因使用Auth脚手架自动生成代码时,验证路由未被默认包含。

具体修复步骤

1. 注册邮箱验证路由

在routes/web.php文件中,确保添加邮箱验证相关路由:

  • 简洁方式:直接启用Auth路由的验证参数
Auth::routes(['verify' => true]);

这个写法会自动注册所有邮箱验证所需的路由,包括报错的verification.verify。

  • 手动注册方式(若需要自定义逻辑):
use Illuminate\Foundation\Auth\EmailVerificationRequest;
use Illuminate\Http\Request;

// 显示邮箱验证提示页
Route::get('/email/verify', function () {
    return view('auth.verify-email');
})->middleware('auth')->name('verification.notice');

// 处理邮箱验证请求
Route::get('/email/verify/{id}/{hash}', function (EmailVerificationRequest $request) {
    $request->fulfill();
    return redirect('/home');
})->middleware(['auth', 'signed'])->name('verification.verify');

// 重新发送验证邮件
Route::post('/email/verification-notification', function (Request $request) {
    $request->user()->sendEmailVerificationNotification();
    return back()->with('message', '验证链接已发送!');
})->middleware(['auth', 'throttle:6,1'])->name('verification.send');

2. 确认User模型实现验证接口

检查app/Models/User.php,确保模型实现MustVerifyEmail接口:

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements MustVerifyEmail
{
    // ... 模型其他代码
}

3. 清除路由缓存

若之前生成过路由缓存,执行命令让新路由生效:

php artisan route:clear

关于第三个方案的说明

第三个方案针对的是自定义Auth控制器的场景——即手动编写注册/登录逻辑时,需要在控制器中主动调用邮箱验证的触发代码。但你是用Auth脚手架自动生成的代码,前两个方案已覆盖你的需求,该方案对你当前场景不适用,可忽略。

内容的提问来源于stack exchange,提问作者user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:05:35