我已经创建了如下规则验证:
$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']
]
验证错误。我该如何比较对象数组之间的属性
答案 0 :(得分:1)
您正在使用最大数量,但是在尝试使用另一个字段的输入来验证它时,最大可疑值。我认为您需要使用lte,请参阅:https://laravel.com/docs/5.8/validation#rule-lte