您好,我在使用其他验证时遇到麻烦。
我有2个变量可以为空。我要实现的是,只要存在变量,就将其强制为正好有5位数字且不具有相同的值。
这些是我设置的规则:
'zip_departure' => 'nullable|digits:5',
'zip_arrival' => 'nullable|different:zip_departure|digits:5',
问题是,当我设置zip_departure
为null
它抛出了一个验证错误,说这两个参数不能有相同的值。但是,如果我dd()
两个变量都具有:
'zip_departure': null
'zip_arrival': '28100'
我在这里想念什么?
我正在使用 Laravel 5.6
从Laravel 5.6开始,验证器明确检查另一个值是否不为null。
public function validateDifferent($attribute, $value, $parameters)
{
$this->requireParameterCount(1, $parameters, 'different');
foreach ($parameters as $parameter) {
$other = Arr::get($this->data, $parameter);
if (is_null($other) || $value === $other) {
return false;
}
}
}
framework / src / Illuminate / Validation / Concerns / ValidatesAttributes.php:432
这就是为什么different:var2
有效,但different:var1
无效的原因。
从Lravel 5.8起,此问题已修复
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句