Laravel 条件性验证

Nov 4, 2018

使用 sometimes() 方法,比如:

1
2
3
4
5
6
7
8
9
$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() 方法中,你是可以在第一和第二个参数通过数组传入多个验证字段和验证规则:

1
2
3
$validator->sometimes(['name', 'email'], 'required', function($data){
return $data->age < 16;
});

或者这样:

1
2
3
$validator->sometimes(['teacher_email', 'parent_email'], 'required|email', function($data){
return $data->age < 16;
});