Laravel更新/编辑功能触发404 NOT FOUND错误问题求助
问题根因
- 核心错误为表单提交路径与路由定义路径不匹配:你在视图中设置的表单提交地址是
customer/profile_update/{id},但web.php中定义的PUT类型客户更新路由路径是customer/update_customer/{id},二者路径完全不一致,Laravel无法匹配到对应路由,因此返回404错误。
修复方案
- 推荐使用路由名生成提交地址(后续修改路由路径也无需改动视图代码),将
edit_customer视图的form标签action属性修改为:
<form action="{{ route('customer.update_customer', [ 'id'=> $cust->id ]) }}" method="POST" enctype="multipart/form-data"> @csrf @method("PUT")
如果你坚持使用url()辅助函数生成地址,也可以直接修改路径和路由定义保持一致:
<form action="{{ url('customer/update_customer', [ 'id'=> $cust->id ]) }}" method="POST" enctype="multipart/form-data">
- 额外优化建议:将
Profile.php控制器update_customer方法中的User::find($id)替换为User::findOrFail($id),和编辑方法保持一致的异常处理逻辑,避免传入不存在的用户ID时触发后续代码报错。
内容的提问来源于stack exchange,提问作者Dnyiri
相关产品推荐
相关产品推荐

