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

在Laravel中如何验证数组内元素的id是否存在重复?

Laravel 数组重复 ID 校验实现方案

Laravel 自带内置的 distinct 验证规则,完全可以满足该场景的校验需求,不需要额外自定义验证逻辑。


基础使用方法

假设你提交的请求参数中,目标数组对应的字段名为 items,验证规则写法如下:

$validated = $request->validate([
    'items.*.id' => 'required|distinct'
]);
  • 规则逻辑:items.*.id 会遍历匹配 items 数组下所有元素的 id 字段,distinct 会自动比对所有匹配到的 id 值,只要存在两个及以上相同的 id,就会直接判定验证失败。
  • 默认采用严格比较模式,数字 222 和字符串 "222" 会被判定为不同值,如果需要非严格比较,可将规则调整为 distinct:false。

自定义错误提示

如果需要修改默认的错误提示文案,可按如下方式配置:

$messages = [
    'items.*.id.distinct' => '提交的数据存在重复的id,请检查后重试'
];

$validated = $request->validate([
    'items.*.id' => 'required|distinct'
], $messages);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 06:36:03