Bonjour à tous je viens vous solliciter pour un problème avec Valitron utiliser lors de la série de tutoriel sur PHP par Grafikart.
J’ai voulu créer une règle concernant le champ password, en effet je voudrais imposée à l’utilisateur lorsqu’il créer ou modifie son mot de passe que le nombre de caractère soit compris entre 6 t 16 caractère ou qu’il doit posséder au minimum 6 caractères.

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire

<?php
namespace App\Validators;

use App\Table\UserTable;

class UserValidator extends AbstractValidator {

     public function __construct(array $data, UserTable $table, ?int $id  = null)
    {
        parent::__construct($data);
        $this->validator->rule('required', ['username','email','password']);
        $this->validator->rule('lengthBetween','username', 3, 100);
        $this->validator->rule('lengthMin', 'password', 6);
        // ou //
         $this->validator->rule('lengthBetween','password', 6, 16);
        $this->validator->rule(function ($field, $value) use ($table, $id) {
            return !$table->exists($field, $value, $id);
        }, ['username'], 'Ce nom d\'utilisateur existe dèja');
        $this->validator->rule(function ($field, $value) use ($table, $id) {
            return !$table->exists($field, $value, $id);
        }, ['email'], 'Ce mail est dèja utilisée!');
    }

}

Ce que je veux

J'aimerais qu'il retourne une lorsque la règle n'est pas respecté.

Ce que j'obtiens

Le formulaire se valide quand même alors que le mot de passe contient que 5 caractère.

Si quelqu'un a une idée je suis preneur, merci d'avance!
Cordialement Gwadas

1 réponse


gwadas
Auteur

Personne aurait une idée ?