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.
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!');
}
}
J'aimerais qu'il retourne une lorsque la règle n'est pas respecté.
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