Maison >développement back-end >tutoriel php >Gestion de la demande de données de demande dans Laravel
La méthode whenHas
de Laravel offre une approche rationalisée pour gérer la logique conditionnelle basée sur la présence de données de demande. Cela est particulièrement bénéfique lors de la gestion des champs de formulaire facultatif et des mises à jour conditionnelles, éliminant les contrôles de présence répétitifs. Cette méthode est particulièrement utile dans les scénarios où des champs spécifiques déclenchent des règles métier uniques - par exemple, les préférences de notification par e-mail peuvent nécessiter une validation et un stockage supplémentaires.
Considérez les préférences de notification par e-mail d'un utilisateur: si un utilisateur s'acte, vous devrez gérer et enregistrer sa fréquence choisie.
un exemple concis en utilisant whenHas
:
// Simple presence check $request->whenHas('name', function ($name) { // Process name if present });
Voici un exemple plus pratique de gestion des préférences de notification:
// app/Controllers/PreferencesController.php <?php namespace App\Http\Controllers; use App\Models\UserPreferences; use Illuminate\Http\Request; class PreferencesController extends Controller { public function update(Request $request, UserPreferences $preferences) { $request->whenHas('email_frequency', function ($frequency) use ($preferences) { $preferences->update([ 'email_frequency' => $frequency, 'last_email_update' => now() ]); }); $request->whenHas('push_enabled', function ($enabled) use ($preferences) { $preferences->update([ 'push_enabled' => $enabled, 'push_updated_at' => now() ]); }, function () use ($preferences) { $preferences->update([ 'push_enabled' => false, 'push_updated_at' => now() ]); }); return response()->json([ 'message' => 'Preferences updated successfully', 'preferences' => $preferences->fresh() ]); } }
Utilisation illustrative:
// Input data (some preferences provided) { "email_frequency": "weekly" } // Resulting Response { "message": "Preferences updated successfully", "preferences": { "email_frequency": "weekly", "last_email_update": "2024-02-01T10:30:00.000000Z", "push_enabled": false, "push_updated_at": "2024-02-01T10:30:00.000000Z" } }
La méthode whenHas
rationalise la gestion de la demande conditionnelle, ce qui entraîne un code plus propre et plus lisible.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!