gpt4 book ai didi

php - Laravel:验证需要大于另一个的整数字段

转载 作者:IT王子 更新时间:2023-10-29 01:03:36 24 4
gpt4 key购买 nike

我有两个字段是可选的,仅当两者都不存在时:

$rules = [
'initial_page' => 'required_with:end_page|integer|min:1|digits_between: 1,5',
'end_page' => 'required_with:initial_page|integer|min:2|digits_between:1,5'
];

现在,end_page 需要大于 initial_page。如何包含此过滤器?

最佳答案

没有内置验证可以让你比较像 Laravel 中的字段值,所以你需要实现一个自定义验证器,这将让您在需要时重用验证。幸运的是,Laravel 让编写自定义验证器真的很容易

首先在你的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 中使用全新的验证规则:

$rules = [
'initial_page' => 'required_with:end_page|integer|min:1|digits_between: 1,5',
'end_page' => 'required_with:initial_page|integer|greater_than_field:initial_page|digits_between:1,5'
];

您可以在此处找到有关创建自定义验证器的更多信息:http://laravel.com/docs/5.1/validation#custom-validation-rules .它们很容易定义,然后可以在您验证数据的任何地方使用。

关于php - Laravel:验证需要大于另一个的整数字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32036882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com