2011-01-16 7 views
1

Ich bin ziemlich neu mit CakePHP, aber ich habe eine Frage, um mein allgemeines Verständnis zu beweisen. Ich schreibe eine Bewerbung für eine Flugtrainingsfirma, die in der Lage sein muss, mit Flugaufzeichnungen umzugehen. Wenn jemand einen Flug eingibt, müssen viele Aufgaben ausgeführt werden, um zu prüfen, ob die eingegebenen Daten gültig sind. Es ist also nicht nur das Überprüfen des Datensatzes mit den Methoden, die das Modell bietet (z. B. ein Feld überprüfen, wenn die eingegebene Zeit gültig ist), es ist noch etwas zu tun, um zu überprüfen, ob er vor der Landung gestartet ist (zeitweise). Auch die Frage, ob es im gleichen Zeitraum bereits einen Flugrekord gibt.Verhalten für Datenvalidierung/CakePhp

Ich frage mich also, ob diese Überprüfung in der Steuerung durchgeführt werden soll oder ob es besser wäre, ein bestimmtes Verhalten für dieses Modell zu erstellen. Oder, und hier wird klar, dass mir das Verständnis fehlt, muss ich nur eine Voreinfügungsfunktion in meinem Modell verwenden. Ich habe viele Posts gelesen und gegoogelt, aber ich komme nicht zu einem Ergebnis.

Antwort

0

Sie sollten wahrscheinlich eine Methode in Ihrem Modell erstellen, die entweder true oder false zurückgibt. Ich denke nicht, dass die beforeInsert-Methode dafür geeignet ist - Sie erhalten Fehler bei der Datenbankeinfügung zusammen mit Validierungsfehlern. Ich nehme an, Sie möchten dem Benutzer Validierungsfehler anzeigen?

function validateRecord($record) { 

    $return = array("bool" => true, "message" => ""); 

    // validation step failed 

    $return['bool'] = false; 
    $return['message'] = "Validation failed because etc etc"; 

    return $return; 
} 
+0

Vielen Dank, dass hilft sehr! Das heißt also, mit den Verhaltensweisen war ich auf dem falschen Weg komplett. Natürlich hast du recht, ich mag eine Nachricht. Vielen Dank nochmal –