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

时间:2019-05-31 09:57:02

标签: laravel lumen laravel-validation

我已经创建了如下规则验证:

$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']
]

验证错误。我该如何比较对象数组之间的属性

1 个答案:

答案 0 :(得分:1)

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