Laravel 5.8 报错Route [makeWalletTransaction]未定义如何解决?
问题原因
- 路由名称不匹配:你在
web.php中为该路由设置的名称是user.makeWalletTransaction,但Blade模板调用route()函数时传入的名称是makeWalletTransaction,缺少了前缀user.,Laravel无法匹配到对应路由,因此抛出"路由未定义"错误。 - 路由参数名不匹配:路由定义的路径占位符为
{wallet}和{user},但你传递给route()函数的参数键为walletId和userId,参数键和占位符名称不一致,后续即使修正路由名称也会出现参数匹配错误。
修复方案
1. 修正Blade模板中的路由调用
将表单的action属性修改为以下内容:
<form action="{{ route('user.makeWalletTransaction', ['wallet' => $wallet->id, 'user' => $user->usr_id]) }}" method="POST" enctype="multipart/form-data">
2. 确认路由生效
执行php artisan route:list命令查看已注册路由列表,确认列表中存在名称为user.makeWalletTransaction的路由,且参数、控制器指向均符合预期。如果是生产环境部署,修改路由后可执行php artisan route:cache重新生成路由缓存,本地开发环境无需额外操作。
内容的提问来源于stack exchange,提问作者user10502851
相关产品推荐
相关产品推荐

