He dado validación en el modelo. Además, he dado alguna validación en el controlador para verificar el código captcha. Después de eso, la aplicación no muestra los errores de validación del modelo. Si comento el código del controlador, la validación del modelo funciona bien y muestra los errores. Tanto que no trabaja ..validación cakephp de modelo y controlador
Código modelo (muestra)
class User extends AppModel {
var $name = 'User';
var $validate = array(
'username' => 'notempty',
'firstname' => 'notempty'
);
}
código del controlador
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));
}
}
he sustituido la línea if ($this->User->save($this->data, array('validate' => 'only')))
con if ($this->User->validates())
, a continuación, también no está funcionando.
favor ayuda
Hablando de MVC, el Modelo no debería tener un campo de captcha. UserModel no debe tener conocimiento de "captcha". Hasta ahora, no puedo encontrar una solución lógica adecuada para ese problema. – hongster
@hongster, este es un gran punto. Actualmente tengo un problema para "validar" si un campo new_password coincide con un campo confirm_password. Sin embargo, poner esta lógica en el Modelo no tendría sentido. En cuanto a la contraseña, solo estarías validando tus reglas de contraseña. Gracias por corregirme. – rob5408