Hi,

J'ai un petit soucis. Je souhaite valider un champ date, seulement, il ne le trouve jamais bon. ^^

Pour le champ de mon formulaire: (cakePHP me génère les listes déroulante)

echo $this->Form->input('birthdate', array('label' => __d('Users', 'Date de naissance <span class="small">JJ/MM/AAAA</span>', true),
                                                       'type' => 'date',
                                                       'dateFormat' => 'DMY',
                                                       ));

Et la validation:

var $validate = array(
    'birthdate' => array(
        'rule' => array('date', 'dmy'),
        'allowEmpty' => false,
        'required' => true,
        'message' => "Mauvais format de la date."
    )
);

format recus grace au debug():

Array
(
    [User] => Array
        (
            [birthdate] => Array
                (
                    [day] => 07
                    [month] => 10
                    [year] => 1960
                )
        )
)

Quand je vais sur la page, j'ai deux choses:
1- Le message d'erreur s'affiche.
2- ce message aussi: "Warning (2): preg_match() expects parameter 2 to be string, array given [CORE/cake/libs/validation.php, line 946]"

cakePHP v1.3.10

Merci d'avance,

@+

Keisuke

1 réponse


Grafikart
Réponse acceptée

Oui si tu envois les donnée directement comme ça (sous forme de tableau) CakePHP ne sera pas en mesure de testé la valeur. A toi de faire un implode ou autre pour envoyer au save les bonnes informations et du coup avoir une règle de validation qui fonctionne :)