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

Laravel中如何实现两个数组的索引配对输入验证?

Laravel中按索引配对数组的表单验证实现

我有一个带验证规则的表单请求,初始代码如下:

return [
    'brand_id' => ['required', 'integer'],
    'color_id' => ['required', 'integer'],
    'name' => ['required', 'max:255', 'string'],
    'capital' => ['required', 'string'],
    'price' => ['required', 'string'],
    'size' => ['required', 'string', 'max:255'],
    'incoming.*' => ['required', 'integer', 'gte:outgoing.0'],
];

我希望按各自的索引对incoming和outgoing两个数组进行配对验证——也就是让incoming[0]大于等于outgoing[0]、incoming[1]大于等于outgoing[1],以此类推,请问在Laravel中能实现这种需求吗?

最终我采用了以下实现方式:

foreach ($this->incoming as $key => $value) {
    $incoming["incoming.{$key}"] = ['required', 'integer', "gte:outgoing.{$key}"];
}

return array_merge([
    'brand_id' => ['required', 'integer'],
    'color_id' => ['required', 'integer'],
    'name' => ['required', 'max:255', 'string'],
    'capital' => ['required', 'string'],
    'price' => ['required', 'string'],
    'size' => ['required', 'string', 'max:255'],
], $incoming);

这个方案的核心思路是:通过遍历incoming数组的每个索引,为每个对应位置的incoming.{key}字段单独生成验证规则,其中gte规则明确指向同索引的outgoing.{key}字段,最后将这些动态生成的规则和原有基础规则合并,就能精准实现按索引配对的数组验证效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 20:01:13