当其他属性为空时,Laravel验证“不同”失败

阿尔贝托

您好,我在使用其他验证时遇到麻烦

我有2个变量可以为空。我要实现的是,只要存在变量,就将其强制为正好有5位数字且不具有相同的值。

这些是我设置的规则:

'zip_departure' => 'nullable|digits:5',
'zip_arrival' => 'nullable|different:zip_departure|digits:5',

问题是,当我设置zip_departurenull它抛出了一个验证错误,说这两个参数不能有相同的值。但是,如果我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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当变量为空时,Laravel 5.3验证失败

验证组合框的SelectedText属性是否为空始终失败

Cas Ldap身份验证失败:属性为空

Laravel密码验证失败,如果为“最小长度”,则为空

我们可以让数据库返回其他东西吗,当字段为空时不同于 0

验证失败时将关联属性设置为nil

从其他片段返回时,片段内的Recyleview为空

为Laravel模型属性使用其他列名称

Laravel模型属性在我保存时为空,但已在构造函数中对其进行了验证

身份验证失败时,MVC验证码ViewBag为空(ModelState.IsValid)

使用Omniauth-Facebook的其他用户属性验证失败

当其他字段为空时显示 yup 字段验证。至少一个字段必须是有效的

仅验证 symfony 表单类型上的其他字段是否为空

当以jwt承载处理程序中配置的其他别名访问站点时,验证颁发者失败

为什么我在Laravel表单上的验证失败并路由到其他页面?

在更新实体的特定属性时,其他属性获取空值

满足空值或其他一些条件时验证过滤器

如何在没有空的其他填充字段的情况下验证 Laravel

MongoDB jsonSchema验证的其他属性

jQuery验证-如果其他字段为

属性集,在其他类中为空。C#

Magento SOAP V2 API-其他属性设置为空

如果为空,则修改对象数组以替换为其他属性

ajax 其他参数为空?

引导程序空字段验证用于其他验证

从其他不同的属性中选择不同的属性

验证时忽略其他<options>

C#winforms:将可为空的类型绑定到其他属性(不是Text)时出错

当其他文本框为空时禁用文本框