Laravel 条件性验证

JellyBool

JellyBool

问题

你想在某种条件之下才触发某个验证规则。

解决方案

使用 sometimes() 方法,比如:

$validator = validator($data,

    [

        'subject' => 'required_if:type,file'

    ]

);


$validator->sometimes('subject', 'min:10', function($data){

   return $data->type == 'file';

});

上面的例子中,validator 只会在 type 为 file 的情况下执行 min:10 的验证规则。当然,在 sometimes() 方法中,你是可以在第一和第二个参数通过数组传入多个验证字段和验证规则:

$validator->sometimes(['name', 'email'], 'required', function($data){

   return $data->age < 16;

});

或者这样:

$validator->sometimes(['teacher_email', 'parent_email'], 'required|email', function($data){

   return $data->age < 16;

});
本文由 JellyBool 创作, 转载和引用遵循 署名-非商业性使用 2.5 中国大陆 进行许可。

共有 1 条评论

TenYear
修改的评论也不能少于六个字哦!