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

Laravel 5.5报错:缺少password.request路由的必填参数

解决Laravel重置密码路由缺少必填参数的问题

这问题其实很明确——你调用路由password.request时,没传它要求的token参数,所以Laravel找不到匹配的路由才报错。下面一步步帮你搞定:

问题根源

先看你定义的这条路由:

Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.request');

路由里的{token}是必填占位符,生成这个路由的URL时必须传入对应的token值,不然Laravel没法定位到这条路由,自然会抛出"缺少必填参数"的错误。

解决方案

1. 给视图里的路由补充token参数

你的reset.blade.php表单action里的route()调用需要补上token参数。用户是通过带token的重置链接进入这个页面的,ResetPasswordController@showResetForm方法应该已经把token变量传到了视图里,直接用就行:

<form class="form-horizontal" method="POST" action="{{ route('password.request', ['token' => $token]) }}">

2. 确认控制器确实传递了token

如果视图里拿不到$token,检查下ResetPasswordController的showResetForm方法,确保它把token传给了视图:

public function showResetForm(Request $request, $token)
{
    return view('auth.reset')->with(
        ['token' => $token, 'email' => $request->email]
    );
}

或者用更简洁的写法:

return view('auth.reset', compact('token', 'email'));

额外提醒:注意路由命名规范

Laravel默认的Auth系统里,password.request其实是用来展示输入邮箱的重置申请页面的路由,展示密码重置表单的路由通常命名为password.reset,处理重置请求的是password.update。如果你是自定义了路由命名,只要前后保持一致就没问题;如果是沿用默认Auth流程,建议改回规范命名,避免后续混淆。

内容的提问来源于stack exchange,提问作者Niladri Banerjee - Uttarpara

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:09:26