2011-02-13 3 views
2

Je fais du seraching depuis des semaines comment faire cela mais je n'ai pas trouvé de bonne réponse. Je pensais que c'était supposé être facile à faire, mais pas du tout. Voici la chose, je dois demander à l'utilisateur de choisir un intervalle d'un mois afin que je puisse lui montrer les bonnes données. Comme il est pas lié à une table que j'ai sur ma base de données, je viens de faire ceci:Comment valider une liste déroulante avec des mois sur CakePHP

<?php 
echo $this->Form->create(false); 
echo $this->Form->month('m1', null, array('monthNames' => false)); 
echo ' until '; 
echo $this->Form->month('m2', null, array('monthNames' => false)); 
echo $this->Form->end('Choose'); 
?> 

Et puis créé une règle simple au modèle (il n'y a qu'une règle pour un champ, à des fins de test):

var $validate = array('m1' => array('rule' => 'notEmpty', 'required' => true, 'message' => 'Error!')); 

Voici mon contrôleur:

function choose_date ($id = null) { 
    if (!empty($this->data)) { 
     $this->Frequency->set($this->data); 
     if ($this->Frequency->validates()) { 
      $fD = $this->data['m1']['month'].'/'.date('Y'); 
      $tD = $this->data['m2']['month'].'/'.date('Y'); 
      $this->Session->write('Frequency.fromDate', $fD); 
      $this->Session->write('Frequency.toDate', $tD); 
      $this->redirect(array('action' => 'view')); 
     } 
    } else { $this->Session->write('Worker.id', $id); } 
} 

Alors qu'est-ce qui se passe est qu'il gèle à la vue « choose_date », n'a pas d'importance si faire ou ne sélectionnez pas quoi que ce soit sur la liste. Comment puis-je le valider? C'est probablement une tâche simple mais ça me rend fou!

Répondre

0

Résolu. J'avais juste besoin d'utiliser la règle 'multiples' et de donner les valeurs que je voulais accepter. :)

+0

Je sais que c'était il y a longtemps (!) Mais quelle était la règle que vous avez utilisée? J'ai le même problème, à part que j'essaie de vérifier le champ du mois n'est pas vide – Paul

+0

Salut Paul! Cela fait longtemps que cette question ne s'est pas posée - je n'ai pas travaillé avec CakePHP depuis longtemps. J'ai essayé de me souvenir de ce que j'ai fait exactement, et cela pourrait avoir quelque chose à voir avec ça: http://book.cakephp.org/2.0/fr/models/data-validation.html#Validation::multiple – dccarmo

Questions connexes