【发布时间】:2021-04-19 11:56:43
【问题描述】:
我们最近将 Laravel 从 5.5 升级到 5.6 我有验证规则:
return [
'min_price' => ['numeric', 'nullable', 'min:0'],
'max_price' => ['numeric', 'nullable', 'min:0', 'gt:min_price'],
]
如果是的话会抛出错误
- min_price = null,max_price = 100
- min_price = 0, max_price = 99.99
- min_price = 12.50,max_price = 100
- min_price = 12.50,max_price = null 它说:
ERROR: The values under comparison must be of the same type "exception":"[object] (InvalidArgumentException(code: 0): The values under comparison must be of the same type at vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php:1659)
[stacktrace]
#0 vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php(849): Illuminate\\Validation\\Validator->requireSameType(12.50, 100)
它说,两个字段应该具有相同的类型,因此它不能比较整数和浮点数,也不能忽略可为空的字段。
问题在于方法validateGt、validateLt、validateGte、validateLte 在特征ValidatesAttributes 中。有什么方法可以扩展或覆盖该特征吗?
【问题讨论】:
标签: php validation comparison numeric laravel-5.6