laravel - 路由存在时出现 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但我被重定向到登录页面。
你认为是什么导致了这个问题?
解决方案
当我将方法更改为PATCH时,我修复了这个问题。
Route::patch('/tasks/changecat', 'TaskController@changeCat');
事实证明,我应该使用 PATCH,因为我需要更改资源的一部分而不是全部。
使用 PATCH 也会自动更改“updated_at”列的值。
推荐阅读
- kubernetes - 如何在 Kubernetes 中按需手动扩展桌面应用程序
- javascript - JavaScript 中的 XSS 攻击,如何对 HTML 进行消毒
- windows-installer - 如何获得msp版本?
- jenkins - Jenkins - 如果其他多个作业成功则运行作业
- android - SecurityException: Permission Denial: isUidActive from pid=XXXX, uid=XXXX requires android.permission.PACKAGE_USAGE_STATS
- java - @Transactional 上的 MySQL 套接字超时行为
- sql - Postgresql 递归比较两行
- vue.js - Vue CLI devServer 代理不起作用(返回 HTML)
- git - 在 bitbucket 中合并多个存储库
- r - 从到达时间到平均。每小时任务数与一天中的小时数