2

我的 laravel 5.4 应用程序中有一个注册表单,laravel form request validation用于服务器端验证。此表单中的某些字段是使用 javascript 中的计算动态填充的,需要根据用户输入进行验证。

'quantity'表单中的用户输入字段是'rate''discount'

填充的字段是'total''bill_amount'

我需要验证的是:

  1. 检查“总”等于“数量”*“比率”。
  2. 检查'bill_amount'等于'total' - 'rate'

对于此验证,我更喜欢 laravel 表单请求验证方法。我曾尝试使用诸如之类的方法After Hooksconditionally adding rule失败了。

简单来说,要求是:检查一个字段是否等于其他两个字段的乘积,invalidate if not equal以及validate if equal。(使用表单请求验证。)

提前致谢!

4

1 回答 1

0

很长一段时间后,我找到了这个解决方案。

Form request After 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!');
            }
        });
    }
于 2017-12-09T17:06:33.163 回答