Laravel 字段的验证数量数组不起作用

Laravel Validation amount array of fields not work

我创建了如下规则验证:

$rules = [
  'items.*.qty' => ['required', 'integer', 'min:1'],
  'items.*.ordered_qty' => ['required','numeric','min:1']
]
$this->validate($request, $rules);

这里我需要验证每个 ordered_qty 应该大于 qty 我已经尝试了下面的方法但是它对我不起作用

$rules = [
  'items.*.qty' => ['required', 'integer', 'min:1','max:items.*.ordered_qty'],
  'items.*.ordered_qty' => ['required','numeric','min:1']
]
$this->validate($request, $rules);

我也尝试了自定义验证,但我无法获得其他字段的值

$rules = [
  'items.*.qty' => ['required', 'integer', 'min:1',function ($attribute, $value, $fail) {
            if ($value > ordered_qty) {
                $fail(':attribute qty is invalid!');
            }
        }],
  'items.*.ordered_qty' => ['required','numeric','min:1']
]

验证错误。我怎样才能对对象数组的属性进行比较

您正在使用最大数量,但当您尝试使用另一个字段的输入验证最大数量时,最大数量怀疑是一个值。我认为您需要使用 lte,请参阅:https://laravel.com/docs/5.8/validation#rule-lte