Laravel Tutoriel Communauté
2 min de lecture 30 vues

Création d’une règle de validation personnalisée avec Laravel 11

xdcondor

Karim Konpissi

@xdcondor

Création d’une règle de validation personnalisée avec Laravel 11

Shalom les devs 👋 Aujourd'hui nous allons parlé des règles de validation personnalisées avec Laravel 11.

Laravel est un Framework PHP qui facilite le développement web en fournissant diverses fonctionnalités, dont un système de validation robuste. Dans cet article, nous allons créer une règle de validation personnalisée pour s’assurer que le nouveau mot de passe d’un utilisateur n’est pas le même que son mot de passe actuel.

Étape 1: Création de la règle de validation

Dans Laravel, vous pouvez créer une règle de validation personnalisée en utilisant la commande Artisan make:rule. Par exemple, pour créer une règle appelée NotSamePassword, vous pouvez exécuter la commande suivante dans votre terminal:

php artisan make:rule NotSamePassword

Cette commande génère une nouvelle classe NotSamePassword dans le répertoire app/Rules.

Étape 2: Implémentation de la règle de validation

Ouvrez le fichier NotSamePassword.php généré et vous verrez une méthodes: validate.

Cette méthode reçoit le nom de l'attribut, sa valeur et un rappel qui doit être invoqué en cas d'échec avec le message d'erreur de validation:

Voici comment vous pouvez implémenter la règle NotSamePassword:

/**
* Run the validation rule.
*
* @param \Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail
*/
public function validate(string $attribute, mixed $value, Closure $fail): void
{
if (Hash::check($value, Auth::user()->getAuthPassword())) {
$fail('Le nouveau mot de passe ne doit pas être le même que le mot de passe actuel.');
}
}

La méthode getAuthPassword() est utiliser pour obtenir le mot de passe actuel de l'utilisateur authentifié.

Étape 3: Utilisation de la règle de validation

Maintenant que vous avez créé la règle de validation, vous pouvez l’utiliser dans votre code. Par exemple, si vous avez un formulaire pour changer le mot de passe, vous pouvez utiliser la règle NotSamePassword comme suit:

public function rules(): array
{
return [
'current_password' => 'required|string',
'password' => ['required', 'string', 'min:8' , 'confirmed', new NotSamePassword ],
];
}

Avec cette règle de validation en place, Laravel s’assurera que le nouveau mot de passe n’est pas le même que le mot de passe actuel avant de procéder à la mise à jour.

En conclusion, Laravel offre un système de validation puissant et flexible qui peut être facilement étendu pour répondre à vos besoins spécifiques. En créant des règles de validation personnalisées, vous pouvez encapsuler la logique de validation complexe dans des classes réutilisables, rendant votre code plus propre et plus facile à maintenir.

Vous aimez cet article ? Faite le savoir en partageant