Maîtriser la logique conditionnelle dans Laravel avec les méthodes `when()` et `unless()` : exemples concrets

DEV - 16/01
Laravel est un framework PHP puissant connu pour sa syntaxe élégante et ses fonctionnalités robustes. Un tel...

Laravel est un framework PHP puissant connu pour sa syntaxe élégante et ses fonctionnalités robustes. L'une de ces fonctionnalités introduites dans Laravel 11.35.0 est laquand()etsauf si()méthodes, une partie duConditionnabletrait. Ces méthodes offrent un moyen plus lisible et plus efficace de gérer la logique conditionnelle, améliorant ainsi la maintenabilité de votre code. Dans cet article, nous explorerons comment utiliser ces méthodes dans des scénarios réels, démontrant comment elles peuvent rationaliser une logique conditionnelle complexe dans les applications Laravel.

1. Attribution de rôle dynamique basée sur la saisie de l'utilisateur

Imaginez que vous créez un formulaire d'inscription d'utilisateur dans lequel l'utilisateur sélectionne un rôle. En fonction du rôle, vous souhaitez attribuer différentes autorisations ou actions après la création de l'utilisateur.

Sansquand():

if ($request->has('role')) { $user->assignRole($request->input('role')); }
Entrer en mode plein écran Quitter le mode plein écran

Avecquand():

$user->when($request->has('role'), function ($user) use ($request) { $user->assignRole($request->input('role')); });
Entrer en mode plein écran Quitter le mode plein écran

Dans ce cas, nous attribuons un rôle uniquement si l'entrée de rôle est présente. Lequand()La méthode le rend concis et le bloc de code ne s'exécute que lorsque la condition est vraie.

2. Règles de validation dynamique

Supposons que vous construisiez un formulaire dans lequel certains champs ne doivent être validés que si une condition spécifique est remplie. Par exemple, le champ email ne doit être obligatoire que si l'utilisateur sélectionne l'option « newsletter ».

Sansquand():

$rules = [ 'email' => 'nullable', ]; if ($request->has('newsletter')) { $rules['email'] = 'required|email'; } $request->validate($rules);
Entrer en mode plein écran Quitter le mode plein écran

Avecquand():

$request->when($request->has('newsletter'), function () use ($request) { $request->validate([ 'email' => 'required|email', ]); });
Entrer en mode plein écran Quitter le mode plein écran

Il s'agit d'une manière plus propre et plus lisible d'appliquer une logique de validation conditionnelle en utilisant...
[Courte citation de 8% de l'article original]

Loading...