You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel6项目删除评论触发comment字段必填验证错误如何修复

问题原因

你的删除表单的HTTP请求方法配置错误,导致请求被路由到了评论更新方法,触发了不必要的字段校验:

  • 你当前删除表单用的是PUT请求方法,PUT方法对应CommentController的update方法,该方法有comment字段必填的校验规则
  • 删除功能应该使用DELETE请求方法,对应你配置的comments.destroy路由,匹配destroy方法完成删除逻辑,该方法不需要comment字段参数
修复步骤
  1. 修改edit.blade.php模板中的表单方法声明,将原来的PUT方法改为DELETE:
{{-- 原来的错误写法 --}}
{{ method_field('PUT') }}

{{-- 修改为正确写法 --}}
{{ method_field('DELETE') }}

{{-- Laravel 6也支持更简洁的Blade指令写法 --}}
@method('DELETE')

修改后的完整表单代码如下:

<form action="{{ route('comments.destroy',  $comment->id) }}" method="post">
    @csrf
    @method('DELETE')
    <button type="submit" class="btn btn-danger btn-block">Delete</button>
</form>

修改完成后重新提交删除请求,即可正常调用删除逻辑,不会再触发comment字段必填的校验错误。

  1. (可选优化)给控制器查询逻辑增加异常处理,避免删除不存在的评论时抛出500错误:
    将CommentController的destroy方法中的Comment::find($id)修改为Comment::findOrFail($id),当查询不到对应评论时会自动抛出404错误。

内容的提问来源于stack exchange,提问作者Narakaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:45:02