ホームページ > バックエンド開発 > PHPチュートリアル > LaravelのPHP enumsでの処理をリクエストします

LaravelのPHP enumsでの処理をリクエストします

Johnathan Smith
リリース: 2025-03-05 15:33:09
オリジナル
899 人が閲覧しました

Request Handling with PHP Enums in Laravel

Laravelの強化された要求処理は、列挙を直接サポートし、着信要求から列挙された値を処理するときにタイプの安全性を確保します。この合理化されたアプローチは、入力検証を簡素化し、事前定義された値セットのデータの一貫性を保証します。

サブスクリプション管理システムで説明しましょう:

use App\Enums\UserRole;
// Basic enum retrieval
$role = $request->enum('role', UserRole::class);
ログイン後にコピー
実用的な例:

// 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()
        ]);
    }
}
ログイン後にコピー
使用例:

// 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"
}
ログイン後にコピー
この列挙ベースのリクエスト処理は、列挙された値を処理するための堅牢でタイプ安全な方法を提供し、アプリケーション内のデータの整合性を確保します。

以上がLaravelのPHP enumsでの処理をリクエストしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート