2017-06-06 185 views
2

我在我的laravel 5.4應用程序中有一個註冊表單,並且laravel form request validation用於服務器端驗證。這種形式的一些字段是使用javascript中的計算動態填充的,需要根據用戶輸入進行驗證。laravel form請求驗證的自定義驗證規則

表單中的用戶輸入字段爲'quantity''rate''discount'

填寫的字段爲'total''bill_amount'

我需要的驗證是:

  1. 檢查 '總' 等於 '量' * '速度'。
  2. 檢查「bill_amount」等於「總」 - 「率」

我寧願這個驗證laravel形式要求的驗證方法。我試圖使用像After Hooksconditionally adding rule等方法,並失敗。

在簡單的話要求是:檢查是否一個字段等於其它兩個字段的產品,和invalidate if not equalvalidate if equal(使用形式請求驗證。)

預先感謝!

回答

0

經過很長時間我才找到了這個解決方案。

表格請求魚鉤後可用於實現結果: [我無法找到之前這個邏輯]

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