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

Laravel调用route('course')提示Route [course] not defined问题求助

问题原因
  • 核心错误为同请求类型、同URI的路由重复定义:Laravel路由匹配时,后定义的路由会直接覆盖之前同请求方式、同路径的路由。你配置的两条GET路由URI都是course,所以第一条绑定index方法、名为course的路由被第二条绑定create方法的路由完全覆盖,自然无法在路由列表中找到。
解决方法
  • 方案1:调整路由URI符合常规规范(推荐)
    修改web.php中的路由配置,保证两个路由的URI不重复:
// 课程列表路由
Route::get('courses', 'CoursesController@index')->name('course');
// 课程创建页路由
Route::get('courses/create', 'CoursesController@create')->name('course.create');

修改后直接访问即可正常匹配。

  • 方案2:使用资源路由(适配你已创建的资源控制器)
    如果你的控制器是资源控制器,可以直接用资源路由声明替代手动单条定义,会自动生成7个标准RESTful路由:
use App\Http\Controllers\CoursesController;

Route::resource('courses', CoursesController::class);

生成后对应路由名称如下,同步修改视图中的路由调用即可:

  • 列表路由:courses.index,视图中改为{{ route('courses.index') }}
  • 创建页路由:courses.create

修改完成后如果开启过路由缓存,执行php artisan route:clear清除缓存,再运行php artisan route:list即可看到对应路由。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:03:04