Validierung der Daten vom Speichern trennen

Kategorie: CakePHP
Publikationsdatum: 16.05.2011
Im Normalfall erfolgt die Validierung der Daten beim Aufruf des Speichern-Befehls. Sprich, durch den Aufruf von $this->model->save($this->data) wird als erstes die Validierung aufgerufen und wenn die ein OK zurückliefert, werden die Daten gespeichert.

Hin und wieder ist es aber nötig, die Daten nach dem Validieren noch zu bearbeiten bevor man sie speichert.

Das klassische Beispiel ist ein Passwort-Feld. Bei der Validierung möchte man überprüfen, ob das Passwort nicht leer ist und ob es eine bestimmte Länge hat. Anschließend sollte das Passwort dann verschlüsselt und gespeichert werden.
Um dies zu realisieren wird nun erst explizit die Validierungsmethode aufgerufen. Wenn die ein OK zurückliefert, kann man die gewünschten Daten noch nachbearbeiten und anschließen dann die Speichernmethode ausführen.
PHP
  1. //Formular wurde abgesendet
  2. if(!empty($this->data))
  3. { //Daten validieren
  4. if($this->Applicant->create($this->data) && $this->Applicant->validates())
  5. { //Passwort verschluesseln
  6. if(!empty($this->data['Applicant']['password']))
  7. { $this->data['Applicant']['password']=$this->_encrypt($this->data['Applicant']['password']);
  8. $this->data['Applicant']['password_wh']=$this->_encrypt($this->data['Applicant']['password_wh']);
  9. }
  10.  
  11. //Daten speichern
  12. if($this->Applicant->save($this->data))
  13. { //Diverses
  14. }
  15. }
  16. }
Stichwörter: CakePHP, Validierung, Speichern
 
 
NACH OBEN