Heim > Backend-Entwicklung > PHP-Tutorial > Anfrage zur Handhabung mit PHP Enums in Laravel

Anfrage zur Handhabung mit PHP Enums in Laravel

Johnathan Smith
Freigeben: 2025-03-05 15:33:09
Original
899 Leute haben es durchsucht

Request Handling with PHP Enums in Laravel

Die erweiterte Anfrageverarbeitung von

Laravel unterstützt nun direkt die Enums und sorgt für die Sicherheit der Type bei der Bearbeitung von Aufzählungswerten aus eingehenden Anforderungen. Dieser optimierte Ansatz vereinfacht die Eingabevalidierung und garantiert die Datenkonsistenz für vordefinierte Wertsätze.

veranschaulichen wir mit einem Abonnementverwaltungssystem:

use App\Enums\UserRole;
// Basic enum retrieval
$role = $request->enum('role', UserRole::class);
Nach dem Login kopieren

Hier ist ein praktisches Beispiel:

// 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()
        ]);
    }
}
Nach dem Login kopieren

Verwendungsbeispiel:

// 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"
}
Nach dem Login kopieren

Diese auf Enum-basierte Anforderungsbehandlung bietet eine robuste, typesichere Methode für die Verarbeitung auflistierter Werte, um die Datenintegrität in Ihrer Anwendung zu gewährleisten.

Das obige ist der detaillierte Inhalt vonAnfrage zur Handhabung mit PHP Enums in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage