路线存在时我收到 404 not found 错误

I am getting 404 not found error while the route exisits

我正在使用 Laravel 构建我的待办事项应用程序。

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 但我被重定向到登录页面。

您认为造成问题的原因是什么?

我在将方法更改为 PATCH 时解决了这个问题。

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

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

使用 PATCH 也会自动更改 'updated_at' 列值。