Покращене оброблення Enum за допомогою підтримки параметрів за замовчуванням у Laravel

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 28 червня, 2025
У новій версії Laravel значно покращено обробку enum-ів запитів із підтримкою значень за замовчуванням, що спрощує їхню валідацію та логіку резервного копіювання. Чи готові ви дізнатися, як цей оновлений метод може зменшити обсяг коду та зробити ваші застосунки більш ефективними? Читайте далі!

У Laravel покращено обробку enum-запитів завдяки підтримці значень за замовчуванням, що спростило валідацію та логіку запасних варіантів у ваших додатках

Раніше обробка відсутніх чи недійсних значень enum вимагала написання додаткового коду для забезпечення запасних варіантів. Тепер оновлений метод enum приймає третій параметр для значень за замовчуванням:

$reportFormat = request()->enum('format', ReportFormat::class, ReportFormat::PDF);
 
$sortDirection = request()->enum('direction', SortDirection::class, SortDirection::Ascending);

Ця вдала зміна зменшує кількість повторюваного коду та робить обробку enum більш декларативною у логіці вашого застосунку

class ReportController extends Controller
{
    public function generateSalesReport(Request $request)
    {
        $configuration = [
            'output_format' => $request->enum('format', OutputFormat::class, OutputFormat::Excel),
            'time_range' => $request->enum('range', TimeRange::class, TimeRange::LastMonth),
            'detail_level' => $request->enum('detail', DetailLevel::class, DetailLevel::Summary),
            'export_type' => $request->enum('export', ExportType::class, ExportType::Download)
        ];
 
        return $this->buildReport($configuration);
    }
 
    public function configureNotifications(Request $request)
    {
        $settings = [
            'delivery_method' => $request->enum('method', DeliveryMethod::class, DeliveryMethod::Email),
            'priority_level' => $request->enum('priority', Priority::class, Priority::Normal),
            'frequency' => $request->enum('frequency', Frequency::class, Frequency::Weekly),
            'format_type' => $request->enum('format', NotificationFormat::class, NotificationFormat::HTML)
        ];
 
        $this->saveNotificationSettings($settings);
 
        return response()->json(['status' => 'updated', 'settings' => $settings]);
    }
 
    private function buildReport(array $config)
    {
        $reportBuilder = new SalesReportBuilder();
 
        return $reportBuilder
            ->setFormat($config['output_format'])
            ->setTimeRange($config['time_range'])
            ->setDetailLevel($config['detail_level'])
            ->setExportType($config['export_type'])
            ->generate();
    }
}

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

Популярні

Logomark Logotype

Інтеграція Laravel Socialite з бібліотекою Google Client PHP

Ви хочете навчитися, як інтегрувати Google OAuth у вашому проекті Laravel, використовуючи Socialite? Дізнайтеся, як налаштувати доступ до сервісів Google, таких як Календар, у нашій сьогоднішній статті

Logomark Logotype

Простий пакет RabbitMQ для Laravel

Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!

Logomark Logotype

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

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