Ho dato la convalida nel modello. Inoltre, ho dato qualche convalida in controller per verificare il codice captcha. Successivamente, l'applicazione non visualizza gli errori di convalida del modello. Se commento il codice del controller, la validazione del modello funziona correttamente e mostra gli errori. Entrambi non lavora ..convalida cakephp da entrambi i modelli e controller
Codice modello (campione)
class User extends AppModel {
var $name = 'User';
var $validate = array(
'username' => 'notempty',
'firstname' => 'notempty'
);
}
Controller cod
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));
}
}
ho sostituito la linea if ($this->User->save($this->data, array('validate' => 'only')))
con if ($this->User->validates())
, poi inoltre non funziona.
si prega di aiutare
Parlando di MVC, il modello non dovrebbe avere un campo captcha. UserModel non dovrebbe essere a conoscenza di "captcha". Fino ad ora, non sono riuscito a trovare una soluzione logica adatta a questo problema. – hongster
@hongster, questo è un grande punto. Attualmente sto riscontrando un problema nel "convalidare" se un campo new_password corrisponde a un campo confirm_password. Tuttavia, mettere questa logica nel modello non avrebbe senso. Per quanto riguarda la password, in realtà verrebbe solo convalidata rispetto alle regole della password. Grazie per avermi sistemato. – rob5408