2015-03-19 1 views
1

J'ai le code suivant et il ne fonctionne pas du tout.Cakephp 2.x - Validation personnalisée ne fonctionne pas

À mon avis, j'ai la suivante:

echo $this->Form->input('User.code', array(
      'between' => '<div class="input-group">', 
      'after' => '</div>', 
      'label' => array('text' => 'Geschenkcode<span>*</span><br><div class="form-small">Geben Sie hier den Geschenkcode<br>aus dem DVD-Flyer an!</div>', 'class' => 'control-label'), 
      'div' => 'form-group', 
      'class' => 'form-control' 
     )); 

Dans mon modèle les éléments suivants:

class User extends AppModel { 
    public $validate = array(
     'code' => array(
     'isInCodes' => array(
      'rule' => array('isInCodes'), 
      'message' => 'nenene' 
     ) 
    ), 
); 

    public function isInCodes($code) { 
    return false; 
    } 
} 

Controller:

public function contest($slug = null) { 
    if (!$this->Contest->findBySlug($slug)) { 
     throw new NotFoundException(__('Invalid Contest')); 
    } 
    if ($this->request->is(array('post', 'put'))) { 
     if (!$this->User->validates()) { 
      $errors = $this->User->validationErrors; 
      debug($errors); 
     } 
     debug($this->request->data); exit(); 
     return $this->redirect(array('action' => 'index')); 
    } 
    $this->Contest->recursive = 0; 
    $contest = $this->Contest->findBySlug($slug); 
    $this->set('contest', $contest); 
} 

Ce ne fonctionne pas du tout. La validation s'exécute comme si elle n'entrait pas dans la fonction. Aucune suggestion?

concernant

+0

Montrez votre code du contrôleur aussi. – ADmad

+0

je mets à jour le poste ... – sjess

Répondre

2

Vous devez utiliser $this->User->set($this->request->data) avant d'appeler $this->User->validates()