Rumah > pembangunan bahagian belakang > tutorial php > Meminta pengendalian dengan php enums di laravel

Meminta pengendalian dengan php enums di laravel

Johnathan Smith
Lepaskan: 2025-03-05 15:33:09
asal
900 orang telah melayarinya

Request Handling with PHP Enums in Laravel

Pengendalian permintaan yang dipertingkatkan Laravel kini secara langsung menyokong enum, memastikan keselamatan jenis apabila memproses nilai yang disebutkan dari permintaan masuk. Pendekatan yang diperkemas ini memudahkan pengesahan input dan menjamin konsistensi data untuk set nilai yang telah ditetapkan.

mari kita ilustrasikan dengan sistem pengurusan langganan:

use App\Enums\UserRole;
// Basic enum retrieval
$role = $request->enum('role', UserRole::class);
Salin selepas log masuk
inilah contoh praktikal:

// 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()
        ]);
    }
}
Salin selepas log masuk
Contoh Penggunaan:

// 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"
}
Salin selepas log masuk
Pengendalian permintaan berasaskan enum ini menawarkan kaedah yang kukuh, jenis selamat untuk memproses nilai yang disebutkan, memastikan integriti data dalam aplikasi anda.

Atas ialah kandungan terperinci Meminta pengendalian dengan php enums di laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan