Ich habe Validierung im Modell gegeben. Außerdem habe ich im Controller eine Überprüfung gegeben, um den Captcha-Code zu überprüfen. Danach zeigt die Anwendung die Modellvalidierungsfehler nicht mehr an. Wenn ich den Controllercode kommentiere, funktioniert die Modellvalidierung einwandfrei und zeigt die Fehler an. Beide nicht funktioniert ..cakephp Validierung von beiden Modell und Controller
Modellcode (Probe)
class User extends AppModel {
var $name = 'User';
var $validate = array(
'username' => 'notempty',
'firstname' => 'notempty'
);
}
Controller-Code
if (!empty($this->data)) {
$this->User->set($this->data);
$this->User->create();
$captcha = $this->Session->read('CAPTCHA_CODE');
if (strtolower($captcha) != strtolower($this->data['User']['captcha']))
{
$this->User->invalidate('captcha', __('Sorry, your entry did not match', true));
}
if ($this->User->save($this->data, array('validate' => 'only')))
{
if ($this->User->save($this->data, array('validate' => 'false'))) {
$this->Session->setFlash(__('Registered successfully', true));
$this->redirect('success');
}
}else {
$this->Session->setFlash(__('Please, try again.', true));
}
}
ich die if ($this->User->save($this->data, array('validate' => 'only')))
Linie mit if ($this->User->validates())
ersetzt haben, dann es funktioniert auch nicht.
bitte helfen
Apropos MVC, das Modell sollte kein Captcha-Feld haben. UserModel sollte nicht auf "Captcha" achten. Bis jetzt kann ich keine geeignete, logische Lösung für dieses Problem finden. – hongster
@hongster, das ist ein toller Punkt. Ich habe derzeit ein Problem "validieren", ob ein Feld new_password einem Feld confirm_password entspricht. Es wäre jedoch nicht sinnvoll, diese Logik in das Modell aufzunehmen. In Bezug auf das Passwort würden Sie nur gegen Ihre Passwortregeln validieren. Danke, dass du mich richtig gestellt hast. – rob5408