Обробка запитів з використанням PHP Enums у Laravel

Перекладено ШІ 7 Laravel News 02 червня, 2026

Завдяки новим можливостям Laravel обробка запитів стає набагато простішою завдяки прямій підтримці enum. Читайте далі, щоб дізнатися, як ця функція допомагає забезпечити безпеку типів та узгодженість даних у вашій програмі

Laravel вдосконалює обробку запитів, надаючи підтримку enum, що дозволяє безпечно обробляти перераховані значення з вхідних запитів. Ця функція спрощує валідацію вводів та забезпечує узгодженість даних при роботі з попередньо визначеними наборами значень.

use App\Enums\UserRole;
// Основне отримання enum
$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' => 'Неправильний рівень підписки'
            ], 422);
        }
        $account->update([
            'subscription_tier' => $newTier,
            'monthly_limit' => $newTier->getMonthlyLimit(),
            'upgraded_at' => now()
        ]);

        return response()->json([
            'message' => 'Підписку успішно оновлено',
            'account' => $account->fresh()
        ]);
    }
}

Приклад використання:

// Запит на вхід
{
    "tier": "pro"
}

// Успішна відповідь
{
    "message": "Підписку успішно оновлено",
    "account": {
        "id": 1,
        "subscription_tier": "pro",
        "monthly_limit": 20000,
        "upgraded_at": "2024-02-01T10:30:00.000000Z"
    }
}

// Неправильний ввід
{
    "tier": "premium"  // Неіснуюче значення enum
}

// Відповідь з помилкою
{
    "error": "Неправильний рівень підписки"
}

Обробка enum у запитах надає надійний спосіб роботи з перерахованими значеннями, зберігаючи при цьому типову безпеку та цілісність домену

Популярні

Інше, що варто прочитати

37 Оновлено 01 червня, 2026

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку

14 Оновлено 01 червня, 2026

Claude Agent тепер інтегрований в AI Assistant для PhpStorm

Ви коли-небудь задумувалися, як полегшити свою роботу в Laravel? У нашій статті ми розглядаємо, як інтеграція Claude Code в PhpStorm може підвищити вашу продуктивність, спростивши процес написання коду та навчання нових розробників. Читайте далі, щоб дізнатися більше про переваги та функціональність цього потужного поєднання

10 Оновлено 01 червня, 2026

Генерація документації в Laravel за допомогою штучного інтелекту

Docudoodle — це потужний пакет для генерації документації в Laravel, який допомагає легко аналізувати вашу кодову базу та створювати документацію за допомогою обраного вами AI. Чи готові ви дізнатися, як цей інструмент може спростити вашу роботу з документуванням коду? Читайте далі!