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

Laravel 10中Resource路由生成异常问题求助

问题原因

你错误地将包含URL参数的路径字符串(questionnaire_correction/{id})作为Route::resource的第一个参数,Laravel会把这个字符串整体识别为资源名称,导致生成的路由名称异常(如{questionnaireid}.create),而非预期的questionnaire_correction.create。

解决方案

方案1:继续使用手动定义路由(推荐,适配你的非标准路径)

你已编写的手动路由逻辑清晰、可正常工作,适合仅需两个路由的场景:

Route::get('/questionnaire_correction/{questionnaireid}', [QuestionnaireCorrectionController::class, 'create'])->name('questionnaire_correction.create');
Route::post('/questionnaire_correction/{questionnaireid}', [QuestionnaireCorrectionController::class, 'store'])->name('questionnaire_correction.store');

方案2:采用符合RESTful规范的嵌套资源路由

如果业务逻辑是为指定问卷创建批改记录,推荐使用嵌套资源路由,更贴合Laravel的RESTful设计:

// 基础嵌套路由定义
Route::resource('questionnaires.corrections', QuestionnaireCorrectionController::class)->only(['create', 'store']);

// 可选:自定义路由参数名称(将默认的参数名改为你需要的questionnaireid)
Route::resource('questionnaires.corrections', QuestionnaireCorrectionController::class)
    ->only(['create', 'store'])
    ->parameters([
        'questionnaires' => 'questionnaireid',
        'corrections' => 'correctionid'
    ]);

生成的路由为:

  • GET|HEAD questionnaires/{questionnaireid}/corrections/create → 路由名称questionnaires.corrections.create
  • POST questionnaires/{questionnaireid}/corrections → 路由名称questionnaires.corrections.store

方案3:自定义Resource路由路径匹配你的需求

若坚持使用Route::resource且保留原路径,可通过route方法自定义每个路由的路径:

Route::resource('questionnaire_correction', QuestionnaireCorrectionController::class)
    ->only(['create', 'store'])
    // 自定义create和store的路由路径
    ->route('create', 'questionnaire_correction/{questionnaireid}')
    ->route('store', 'questionnaire_correction/{questionnaireid}')
    // 指定预期的路由名称
    ->names([
        'create' => 'questionnaire_correction.create',
        'store' => 'questionnaire_correction.store',
    ])
    // 可选:限制参数为数字类型
    ->whereNumber('questionnaireid');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:13:10