4 Stimmen

Wie kann man ein zusätzliches Feld im Formular validieren? CAKEPHP

Ich erstelle ein Formular mit einem Kontrollkästchen namens "Zustimmung". Der Benutzer muss dieses anklicken, um zu bestätigen, dass er den Vereinbarungen zugestimmt hat. Aber wie füge ich dies der Validierung hinzu? Kann ich dies über das Modell tun? Es handelt sich um ein Feld, das sich nicht in der Datenbank befindet.

Ich stecke hier fest.

2voto

David Yell Punkte 11641

Sie können das Feld bei Bedarf manuell validieren.

$this->Model->set($this->data['Form']['agree']);
if($this->Model->validates($this->data)){
  // okay
  $this->Model->Save();
}else{
  pr($this->Model->invalidFields());
}

Oder Sie können eine manuelle Validierung im Modell vornehmen, was wahrscheinlich vorzuziehen ist. Dazu würde ich meine eigene Validierungsfunktion schreiben, die prüft, ob die Daten vorhanden sind und mit dem Formularwert übereinstimmen.

http://book.cakephp.org/view/1181/Adding-your-own-Validation-Methods

1voto

Leo Punkte 6575

Persönlich würde ich mit Javascript vor dem Absenden des Formulars überprüfen, dann überprüfen Sie erneut in den Controller kurz vor der save().

Ich begründe dies damit, dass die Vereinbarung nicht wirklich mit dem Datenmodell zusammenhängt, da es sich nicht um einen gespeicherten Wert handelt (und nur eine gültige Bedingung hat, so dass die Validierung bedeutungslos ist), sondern eine Bedingung für die Übermittlung des Formulars ist. Wenn es eine Spalte in der Tabelle war oder verwendet wurde, um einen gespeicherten Wert zu erzeugen oder zu ändern, dann würde ich es wahrscheinlich auf dem Modell tun.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X