laravel表单请求验证的自定义验证规则

时间:2017-06-06 18:27:58

标签: laravel laravel-5.4 request-validation

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

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

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

我需要验证的是:

  
      
  1. 选中'total'等于'quantity'*'rate'。
  2.   
  3. 检查'bill_amount'是否等于'total' - 'rate'
  4.   

我更喜欢laravel表单请求验证方法进行此验证。我曾尝试使用After Hooksconditionally adding rule等方法,但失败了。

  

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

提前致谢!

1 个答案:

答案 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!');
            }
        });
    }