Maison >développement back-end >tutoriel php >Demandez la manipulation avec PHP Enum à Laravel
La gestion améliorée de la demande de Laravel prend désormais directement en charge les énumérations, garantissant la sécurité du type lors du traitement des valeurs énumérées à partir des demandes entrantes. Cette approche rationalisée simplifie la validation des entrées et garantit la cohérence des données pour les ensembles de valeur prédéfinis.
illustrons avec un système de gestion d'abonnement:
use App\Enums\UserRole; // Basic enum retrieval $role = $request->enum('role', UserRole::class);
Voici un exemple pratique:
// app/Enums/SubscriptionTier.php <?php namespace App\Enums; enum SubscriptionTier: string { case FREE = 'free'; case BASIC = 'basic'; case PRO = 'pro'; case ENTERPRISE = 'enterprise'; public function getMonthlyLimit(): int { return match($this) { self::FREE => 1000, self::BASIC => 5000, self::PRO => 20000, self::ENTERPRISE => 100000 }; } } // app/Controllers/AccountController.php namespace App\Http\Controllers; use App\Enums\SubscriptionTier; use App\Models\Account; use Illuminate\Http\Request; class AccountController extends Controller { public function updateSubscription(Request $request, Account $account) { $newTier = $request->enum('tier', SubscriptionTier::class); if (!$newTier) { return response()->json([ 'error' => 'Invalid subscription tier provided' ], 422); } $account->update([ 'subscription_tier' => $newTier, 'monthly_limit' => $newTier->getMonthlyLimit(), 'upgraded_at' => now() ]); return response()->json([ 'message' => 'Subscription updated successfully', 'account' => $account->fresh() ]); } }
Exemple d'utilisation:
// Valid request { "tier": "pro" } // Successful response { "message": "Subscription updated successfully", "account": { "id": 1, "subscription_tier": "pro", "monthly_limit": 20000, "upgraded_at": "2024-02-01T10:30:00.000000Z" } } // Invalid request { "tier": "premium" // Non-existent tier } // Error response { "error": "Invalid subscription tier provided" }
Cette gestion de la demande basée sur l'énumération offre une méthode robuste et sécurisée pour le traitement des valeurs énumérées, assurant une intégrité des données dans votre application.
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!