Laravel 5.2表单提交遇404 Not Found错误,求解决方法
Laravel表单提交出现404 Not Found的解决办法
可能的原因及对应解决步骤
1. 路由命名空间问题(Laravel 8+版本)
Laravel 8及后续版本,路由默认不再自动加载App\Http\Controllers命名空间,你的资源路由需要指定完整控制器命名空间:
Route::resource('/posts', App\Http\Controllers\PostController::class);
或者在路由文件顶部先引入控制器:
use App\Http\Controllers\PostController; Route::resource('/posts', PostController::class);
2. 表单Action路径错误
如果项目未部署在Web服务器根目录(比如访问地址是http://localhost/laravel-project),硬写action="/posts"会让请求发送到http://localhost/posts,而非项目根目录下的接口,导致404。建议用Laravel辅助函数生成正确路径:
<form method="POST" action="{{ url('/posts') }}">
更规范的方式是通过路由名称生成:
<form method="POST" action="{{ route('posts.store') }}">
3. 路由缓存未清除
若之前执行过php artisan route:cache生成路由缓存,后续修改路由后需清除缓存才能生效:
php artisan route:clear
4. 控制器文件或方法异常
确保PostController文件存放在app/Http/Controllers目录下,文件名与类名一致(如PostController.php对应PostController类),且store方法已正确定义。
内容的提问来源于stack exchange,提问作者Amel Mehenni
相关产品推荐
相关产品推荐

