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 у запитах надає надійний спосіб роботи з перерахованими значеннями, зберігаючи при цьому типову безпеку та цілісність домену
Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку
Ви коли-небудь задумувалися, як полегшити свою роботу в Laravel? У нашій статті ми розглядаємо, як інтеграція Claude Code в PhpStorm може підвищити вашу продуктивність, спростивши процес написання коду та навчання нових розробників. Читайте далі, щоб дізнатися більше про переваги та функціональність цього потужного поєднання
Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!