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 пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом
Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!