首页 > 解决方案 > 路由存在时出现 404 not found 错误

问题描述

我正在使用Laravel构建我的 todo 应用程序。

web.php路由文件中,我添加了这条路由:

Route::put('/tasks/changecat', 'TaskController@changeCat');

我从.blade.php文件中的表单调用此路由,如下所示:

<form action="tasks/changecat" id="change-cat-form" class="d-none" method="POST">
    @method('PUT')
    @csrf
    <input type="text" name="task" id="task-input">
    <input type="text" name="category" id="category-input">
</form>

但是当我尝试在浏览器上提交表单时,我得到 404 not found

浏览器显示的内容

我尝试使用邮递员,并且在标题中包含了 csrf 令牌,我得到200 ok但我被重定向到登录页面。

你认为是什么导致了这个问题?

标签: laravelrouteshttp-status-code-404

解决方案


当我将方法更改为PATCH时,我修复了这个问题。

Route::patch('/tasks/changecat', 'TaskController@changeCat');

事实证明,我应该使用 PATCH,因为我需要更改资源的一部分而不是全部。

使用 PATCH 也会自动更改“updated_at”列的值。


推荐阅读