Inertia.js跳转报Route [management] not defined如何解决
错误原因
Redirect::route() 方法的入参要求是路由的命名标识,而非路由的访问URL路径。你当前的路由仅定义了访问路径/management,没有绑定对应的路由名称,且传入的参数带了路径前缀斜杠,框架无法匹配到对应命名路由,因此抛出Route [management] not defined错误。
修复方法
两种方案二选一即可:
- 方案1:使用命名路由(项目开发推荐写法,后续调整路由路径时无需批量修改跳转代码)
- 修改
routes/web.php中的路由定义,通过name()方法为路由绑定名称:
Route::get('/management', function () { return Inertia::render('Management'); })->name('management');- 修改控制器中的跳转代码,传入正确的路由名(去掉路径开头的斜杠):
return Redirect::route('management'); - 修改
- 方案2:直接按URL路径重定向(无需修改路由定义)
把控制器中调用的Redirect::route()方法替换为Redirect::to(),直接传入目标访问路径即可:return Redirect::to('/management');
注意:不要给
route()方法传入带开头斜杠的参数,路由名是自定义的标识字符串,和URL路径格式无关。
内容的提问来源于stack exchange,提问作者Mishen Thakshana
相关产品推荐
相关产品推荐

