laravel 表单请求验证的自定义验证规则
Customized validation rule on laravel form request validation
我的 laravel 5.4 应用程序中有一个注册表单,laravel form request validation
用于服务器端验证。此表单中的某些字段是使用 javascript 中的计算动态填充的,需要根据用户输入进行验证。
表单中的用户输入字段为 'quantity'
、'rate'
和 'discount'
。
填充的字段是 'total'
和 'bill_amount'
。
我需要验证的是:
- Check 'total' equal to 'quantity' * 'rate'.
- Check 'bill_amount' equal to 'total' - 'rate'
我更喜欢 laravel 表单请求验证方法来进行此验证。我尝试使用 After Hooks
和 conditionally adding rule
等方法,但失败了。
In simple words the requirement is : check if a field is equal to product of other two fields, and invalidate if not equal
and validate if equal
.(using form request validation.)
提前致谢!
经过很长时间我终于找到了这个解决方案。
表单请求Hooks后可以用来实现结果:
[之前找不到这个逻辑]
public function withValidator($validator)
{
$quanty = $this->request->get("quantity");
$rate = $this->request->get("rate");
$billAmount = $this->request->get("bill_amount");
$validator->after(function ($validator) {
if(($quanty * $rate) != $billAmount) {
$validator->errors()->add('bill_amount', 'Something went wrong with this field!');
}
});
}
我的 laravel 5.4 应用程序中有一个注册表单,laravel form request validation
用于服务器端验证。此表单中的某些字段是使用 javascript 中的计算动态填充的,需要根据用户输入进行验证。
表单中的用户输入字段为 'quantity'
、'rate'
和 'discount'
。
填充的字段是 'total'
和 'bill_amount'
。
我需要验证的是:
- Check 'total' equal to 'quantity' * 'rate'.
- Check 'bill_amount' equal to 'total' - 'rate'
我更喜欢 laravel 表单请求验证方法来进行此验证。我尝试使用 After Hooks
和 conditionally adding rule
等方法,但失败了。
In simple words the requirement is : check if a field is equal to product of other two fields, and
invalidate if not equal
andvalidate if equal
.(using form request validation.)
提前致谢!
经过很长时间我终于找到了这个解决方案。
表单请求Hooks后可以用来实现结果: [之前找不到这个逻辑]
public function withValidator($validator)
{
$quanty = $this->request->get("quantity");
$rate = $this->request->get("rate");
$billAmount = $this->request->get("bill_amount");
$validator->after(function ($validator) {
if(($quanty * $rate) != $billAmount) {
$validator->errors()->add('bill_amount', 'Something went wrong with this field!');
}
});
}