我在laravel 5.4应用程序中有一个注册表单,laravel form request validation
用于服务器端验证。此表单中的某些字段使用javascript中的计算动态填充,需要根据用户输入进行验证。
表单中的用户输入字段为'quantity'
,'rate'
和'discount'
。
填充的字段为'total'
和'bill_amount'
。
我需要验证的是:
- 选中'total'等于'quantity'*'rate'。
- 检查'bill_amount'是否等于'total' - 'rate'
醇>
我更喜欢laravel表单请求验证方法进行此验证。我曾尝试使用After Hooks
和conditionally adding rule
等方法,但失败了。
简单来说,要求是:检查字段是否等于其他两个字段的产品,以及
invalidate if not equal
和validate if equal
。(使用表单请求验证。)
提前致谢!
答案 0 :(得分:0)
很长一段时间后,我找到了这个解决方案。
表单请求 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!');
}
});
}