Laravel提交表单提示Route [EnviarCurriculum.store]未定义如何解决
错误原因
问题出在Laravel Resource路由的命名规则和你实际调用的路由名不匹配:Route::resource方法生成的路由名称默认是基于第一个参数(资源URI)生成,而非控制器名称。你当前定义的资源路由URI为/,所以系统生成的store路由名称不是你在Blade中调用的EnviarCurriculum.store,自然触发路由未定义报错。
修复方案
两种方案选其一即可:
方案1:显式指定路由命名前缀
直接修改web.php的路由定义,添加names方法指定路由前缀和你模板调用的名称一致,无需修改其他代码:
<?php Route::resource('/', 'enviarCurriculum\EnviarCurriculumController') ->only(['index', 'create', 'store']) ->names('EnviarCurriculum');
方案2:调整路由URI和模板调用
如果需要更符合Laravel规范的路由写法,可以先修改web.php的资源URI:
<?php Route::resource('enviar-curriculum', 'enviarCurriculum\EnviarCurriculumController')->only(['index', 'create', 'store']);
再修改enviar_curriculum.blade.php里的表单action,调用对应生成的路由名:
<form action="{{ route("enviar-curriculum.store") }}" method="POST">
验证方式
修改完成后在项目根目录执行命令php artisan route:list,即可查看所有已注册的路由信息,确认store路由的名称和你调用的一致即可正常访问。
内容的提问来源于stack exchange,提问作者El conde Lucanor
相关产品推荐
相关产品推荐

