2017-06-06 3 views
2

Ich habe ein Registrierungsformular in meinem Laravel 5.4 Anwendung und laravel form request validation wird für die serverseitige Validierung verwendet. Einige Felder in diesem Formular werden dynamisch mithilfe von Berechnungen in JavaScript ausgefüllt, die anhand von Benutzereingaben überprüft werden müssen. Die Benutzereingabefelder im Formular sind 'quantity', 'rate' und 'discount'.Angepasste Validierungsregel auf Laravel Formular Anfrage Validierung

Die Felder lauten 'total' und 'bill_amount'.

Was ich brauche, um zu validieren sind:

  1. Check 'total' gleich 'Menge' * 'Bewertung'.
  2. Check 'bill_amount' gleich 'total' - 'Bewertung'

Ich würde Laravel Form Anfrage Validierungsmethoden für diese Validierung bevorzugen. Ich habe versucht, Methoden wie After Hooks und conditionally adding rule usw. zu verwenden und schlug fehl.

In einfachen Worten die Anforderung wird: überprüfen, ob ein Feld Produkt aus beiden anderen Felder gleich ist, und invalidate if not equal und validate if equal (Form Anforderungsüberprüfung verwendet wird.)

Vielen Dank im Voraus.!

Antwort

0

Nach langer Zeit konnte ich diese Lösung finden.

Formular-Anfrage Nach Hooks verwendet werden kann, um das Ergebnis zu erreichen: [Ich war nicht in der Lage, diese Logik zu finden, bevor]

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