Laravel中Route [daftar_mahasiswa]未定义问题求助
问题排查与解决步骤
1. 核对路由定义的完整代码
确认routes/web.php里的路由是否存在自动转换或覆盖情况:
- 手动定义路由时,确保
->name()参数确实是daftar_mahasiswa,无拼写或编辑器自动替换错误:
Route::get('/daftar-mahasiswa', [MahasiswaController::class, 'index'])->name('daftar_mahasiswa');
- 若使用
Route::resource,Laravel会自动生成带连字符的路由名(如daftar-mahasiswa.index),手动指定的名称可能被覆盖,需显式指定资源路由名称:
Route::resource('daftar-mahasiswa', MahasiswaController::class)->names([ 'index' => 'daftar_mahasiswa' ]);
2. 清除路由缓存
Laravel会缓存路由配置,修改路由文件后旧缓存仍会生效,执行命令清除:
php artisan route:clear
之后再运行php artisan route:list查看路由名称是否更新为daftar_mahasiswa。
3. 排查重复路由定义
检查所有路由文件(web.php、api.php等),确认是否存在其他路由使用了/daftar-mahasiswa路径并设置了daftar-mahasiswa名称,后续定义的路由会覆盖前面的。
4. 验证视图中的路由调用
再次确认视图里的route('daftar_mahasiswa')拼写正确,未将下划线误写为连字符。
5. 直接生成路由URL验证
在终端执行以下命令,验证路由名称是否有效:
php artisan route:generate daftar_mahasiswa
若返回正确URL,说明路由名称已注册;若报错,回到第一步重新检查路由定义。
内容的提问来源于stack exchange,提问作者DITZ
相关产品推荐
相关产品推荐

