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

Laravel CRUD开发异常:点击第三条数据却删除第一条数据求助

问题原因

循环渲染数据行时,所有删除模态框的ID都是exampleModal,浏览器只会匹配第一个拥有该ID的元素。因此无论点击哪条数据的删除按钮,弹出的都是第一条数据对应的模态框,最终删除的是第一条数据的ID。

解决方案

1. 修改前端代码:给每个模态框设置唯一ID

将模态框的ID和按钮的data-bs-target绑定当前数据的id_pegawai,确保每个模态框唯一。同时建议用表单提交删除请求(符合REST规范,避免GET请求的误触风险):

<!-- 删除按钮 -->
<button type="button" class="btn btn-danger" data-bs-toggle="modal" data-bs-target="#deleteModal-{{$row->id_pegawai}}">
  Hapus
</button>

<!-- 唯一ID的模态框 -->
<div class="modal fade" id="deleteModal-{{$row->id_pegawai}}" tabindex="-1" aria-labelledby="deleteModalLabel-{{$row->id_pegawai}}" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="deleteModalLabel-{{$row->id_pegawai}}">Apakah anda yakin ingin menghapus data?</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>                        
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Tutup</button>
        <!-- 使用表单提交DELETE请求 -->
        <form action="/deletedata/{{$row->id_pegawai}}" method="POST">
          @csrf
          @method('DELETE')
          <button type="submit" class="btn btn-primary">Ya</button>
        </form>
      </div>
    </div>
  </div>
</div>

2. 修改控制器代码(优化版)

用firstOrFail简化逻辑,找不到对应数据时自动返回404:

public function deletedata($id_pegawai){
    $employee = Employee::where('id_pegawai', $id_pegawai)->firstOrFail();
    $employee->delete();
    return redirect('pegawai')->with('success', 'Data berhasil dihapus!');
}

3. 调整路由配置

确保路由使用DELETE方法(在routes/web.php中):

use App\Http\Controllers\YourEmployeeController; // 替换为你的控制器类名

Route::delete('/deletedata/{id_pegawai}', [YourEmployeeController::class, 'deletedata'])->name('pegawai.delete');

这样修改后,每个删除按钮会对应到当前数据行的模态框,提交的删除请求也会携带正确的ID,就能精准删除目标数据了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 06:00:33