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

Laravel路由跳转异常:点击add-new-information跳转到infoadmin页报错

问题原因

Laravel路由匹配遵循从上到下优先匹配规则,你当前路由配置中,带动态参数{id}的admin-informations路由定义在add-new-information路由之前:

// 先匹配这条,会把路径中的add-new-information当做{id}参数传入
Route::get('/informations/{id}', [App\Http\Controllers\InformationController::class, 'indexAdminInfo'])->name('admin-informations');
Route::get('/informations/add-new-information', [App\Http\Controllers\InformationController::class, 'add'])->name('add-new-information');

当你访问/admin/informations/add-new-information时,系统会直接将add-new-information识别为{id}的参数值,命中admin-informations路由,进入indexAdminInfo方法,所以不会走到add方法对应的路由。

修复方案
  1. 调整路由定义顺序,把无动态参数的路由放在带参数路由的前面:
Route::group(['prefix' => 'admin'], function() {
    Route::get('/informations', [App\Http\Controllers\InformationController::class, 'index'])->name('informations');
    // 先放固定路径的路由
    Route::get('/informations/add-new-information', [App\Http\Controllers\InformationController::class, 'add'])->name('add-new-information');
    // 再放带动态参数的路由
    Route::get('/informations/{id}', [App\Http\Controllers\InformationController::class, 'indexAdminInfo'])->name('admin-informations');
});
  1. (可选优化)给{id}参数增加正则约束,仅当参数为数字时才命中该路由,进一步避免匹配冲突:
Route::get('/informations/{id}', [App\Http\Controllers\InformationController::class, 'indexAdminInfo'])->name('admin-informations')->where('id', '[0-9]+');

修复后可以执行php artisan route:list命令确认路由匹配顺序是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:54:07