Salutations,CakePHP Date de validation en utilisant le format de date tableau
À mon avis, j'ai une entrée de date, définissez comme ceci:
echo $form->input('cc_expdate', array('label' => __('exp. date', true),
'type' => 'date', 'dateFormat' => 'MY', 'default' => date('Y'),
'minYear' => date('Y'), 'maxYear' => date('Y', strtotime("+10 years")),
'orderYear' => 'asc', 'separator' => ' ', 'monthNames' => false));
Et dans mon modèle, j'ai une règle de validation, à savoir:
'cc_expdate' => array(
'rule' => array('date', 'my'),
'message' => 'Please select a valid expiration date'
)
Mais la validation échoue toujours. Quand je regarde $this->data
, je vois que la date est passée à travers le formulaire comme un tableau (par exemple 'cc_expdate' => array('month' => '10', 'year' => '2010')
) mais il semble que la règle de validation de date attend une chaîne comme 10-2010
. J'ai chassé autour de Cake et vérifié la documentation, mais je n'ai rien trouvé qui couvre ça. Il semble que cela devrait être une tâche simple à gérer, est-ce que je manque quelque chose de simple ou est-ce que Cake n'a pas de validation intégrée pour les éléments de formulaire 'date'?
acclamations,
-Bri
La classe 'model' a une [méthode' déconstruire() '] (http: //api13.cakephp .org/view_source/model/# line-849) dont le travail consiste à reconstituer les tableaux de dates créés par l'assistant 'Form' en une valeur scalaire. Dans mon expérience, cette "reconstruction" (IMO, la sémantique du nom de la méthode est contre-intuitive) arrive _before_ la valeur est passée en validation. Je ne vois rien de mal dans votre extrait. –
@Rob Merci d'avoir signalé cela. Je vais jeter un coup d'oeil à la classe 'Model' pour voir si je peux savoir où se trouve le foobar.Pour l'instant j'ai ajouté du code à mon contrôleur qui scalarise le tableau de date dans une nouvelle clé ('$ this-> data ['Model'] ['cc_expdate2']') et ajouté une règle de validation personnalisée à mon modèle qui vérifie la valeur. (divers aspects de Cake et de ses formats de données attendus m'empêchent de le faire uniquement dans le contrôleur ou le modèle) – Soulriser
J'ai posé une question similaire il y a quelques semaines. Je suis surpris que la validation de la date nécessite un code supplémentaire à effectuer. peut-être qu'ils vont affiner cela pour le gâteau 2.0. – the0ther