Bonjour à toutes et à tous,

J'utilise le framework CakePHP en version 2.5, et en créant mes formulaires avec des règles de validations, mes champs sont tout le temps required, alors que comme vous pourrez le voir dans mes validations, la variable required est à false, voici mon code :

Mes règles de validations :

public $validate = array(
        "username" => array(
            "alphaNumeric" => array(
                "required" => false,
                "rule" => "alphaNumeric",
                "message" => "Ce champ ne doit contenir que des chiffres et des lettres.",
            ),
            "between" => array(
                "rule" => array("between", 2, 255),
                "message" => "Ce champ doit contenir entre 2 et 255 caractères.",
            ),
            "isUnique" => array(
                "rule" => "isUnique",
                "message" => "Ce nom est déjà utilisé.",
            ),
        ),
        "password" => array(
            "between" => array(
                "required" => false,
                "rule" => array("between", 2, 255),
                "message" => "Ce champ doit contenir entre 2 et 255 caractères.",
            ),
            "verification" => array(
                "rule" => "checkPasswords",
                "message" => "Les deux mots de passe ne correspondent pas."
            ),
        ),
        "pass_verif" => array(
            "notEmpty" => array(
                "required" => false,
                "rule" => array("between", 1, 255),
                "message" => "Ce champ ne doit pas être vide.",
            ),
        ),
    );

Mon formulaire :

<?= $this->Form->create('User'); ?>
    <fieldset>
        <legend>Vos informations</legend>
        <div class="row">
            <div class="large-4 columns">
                <?= $this->Form->input('username'); ?>
            </div>
            <div class="large-4 columns">
                <?= $this->Form->input('password', array('type' => 'password')); ?>
            </div>
            <div class="large-4 columns">
                <?= $this->Form->input('pass_verif', array('type' => 'password')); ?>
            </div>
        </div>
    </fieldset>
<?= $this->Form->end(array('label' => 'Modifier mon profil','class' => 'button expand')); ?>

Auriez-vous déjà rencontré le problème ?

Cordialement.

1 réponse


Il faut mettre allowEmpty => true...