没有内置验证可以让您比较Laravel中的字段值,因此您需要实现自定义验证器,以便在需要时重用验证.幸运的是,Laravel使编写自定义验证器非常容易.
首先在yor AppServiceProvider中定义新的验证器:
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
Validator::extend('greater_than_field',function($attribute,$value,$parameters,$validator) {
$min_field = $parameters[0];
$data = $validator->getData();
$min_value = $data[$min_field];
return $value > $min_value;
});
Validator::replacer('greater_than_field',function($message,$attribute,$rule,$parameters) {
return str_replace(':field',$parameters[0],$message);
});
}
}
现在,您可以在$规则中使用全新的验证规则:
$rules = [
'initial_page' => 'required_with:end_page|integer|min:1|digits_between: 1,'end_page' => 'required_with:initial_page|integer|greater_than_field:initial_page|digits_between:1,5'
];