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

Laravel Eloquent结合AJAX批量删除异常:最后一条数据无法删除

问题分析与解决方法

核心问题

你的代码存在逻辑冲突:

  1. 你已经通过json_decode($ids, TRUE)正确解析了URL中传入的数组格式字符串(比如[88,87]),得到了合法的ID数组$idarray。
  2. 但后续你又用$ids = explode(",", $ids)处理原始带括号的字符串,得到的数组是["[88", "87]"]——最后一个元素带右括号],和数据库中的ID不匹配,所以永远删不掉最后一条数据。

修正代码

直接使用正确解析后的$idarray执行删除操作,去掉错误的explode逻辑:

public function deletemultiple($ids) {
    $idarray = json_decode($ids, TRUE);
    try {
        Member::whereIn('id', $idarray)->delete();
        return response()->json(array('success' => $idarray));
    } catch(\Exception $e) {
        return response()->json(array('error' => $e->getMessage()), 400);
    }
}

额外说明

  • 取消注释测试代码时,用的是正确的$idarray,所以能返回所有传入的ID;但删除时用了错误的explode结果,导致最后一条失败。
  • 如果担心URL数组格式的解析问题,也可以改用POST请求,将ID数组放在请求体(JSON格式)中,比放在URL路径里更规范,还能避免特殊字符的解析问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:53:10