Обробка відсутніх даних запиту в Laravel

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

Досліджуйте елегантні методи Laravel для керування відсутніми даними запиту за допомогою missing() та whenMissing(). Це спростить обробку необов'язкових полів і підвищить читабельність вашого коду — не пропустіть можливість удосконалити свої навички!

Laravel надає елегантні методи для управління відсутніми даними запиту через missing() та whenMissing(). Ці методи спрощують обробку необов'язкових полів і встановлення значень за замовчуванням, роблячи ваш код більш зрозумілим і зручним для підтримки.

// Перевірка на відсутність даних
if ($request->missing('name')) {
    $name = 'Гість';
}
 
// Обробка відсутніх даних з колбеками
$request->whenMissing('email', function () {
    // Обробка відсутньої електронної пошти
});

Розглянемо приклад системи оновлення налаштувань:

// app/Controllers/SettingsController.php
<?php
 
namespace App\Http\Controllers;
 
use App\Models\Settings;
use Illuminate\Http\Request;
 
class SettingsController extends Controller
{
    public function update(Request $request, Settings $settings)
    {
        $updates = [];
        // Обробка налаштувань теми
        $request->whenMissing('theme',
            function() use (&$updates) {
                $updates['theme'] = [
                    'mode' => 'system',
                    'color' => 'blue'
                ];
            },
            function() use (&$updates, $request) {
                $updates['theme'] = [
                    'mode' => $request->input('theme.mode', 'light'),
                    'color' => $request->input('theme.color', 'blue')
                ];
            }
        );
        // Обробка налаштувань сповіщень
        if ($request->missing('notifications')) {
            $updates['notifications'] = [
                'email' => true,
                'push' => false,
                'frequency' => 'daily'
            ];
        } else {
            $updates['notifications'] = $request->notifications;
        }
        $settings->update($updates);
        return response()->json([
            'message' => 'Налаштування успішно оновлено',
            'settings' => $settings->fresh()
        ]);
    }
}

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

// Вхідні дані з мінімальною інформацією
{
    "notifications": {
        "email": true,
        "push": true
    }
}
// Відповідь
{
    "message": "Налаштування успішно оновлено",
    "settings": {
        "theme": {
            "mode": "system",
            "color": "blue"
        },
        "notifications": {
            "email": true,
            "push": true,
            "frequency": "daily"
        }
    }
}
// Вхідні дані з повною інформацією
{
    "theme": {
        "mode": "dark",
        "color": "purple"
    },
    "notifications": {
        "email": false,
        "push": true,
        "frequency": "weekly"
    }
}

Методи missing() та whenMissing() пропонують зручний спосіб обробки необов'язкових даних запиту, зберігаючи читабельність коду

Популярні

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

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

Управління доступом у Filament за допомогою плагіна Shield

Дізнайтеся, як пакет Filament Shield забезпечує управління доступом до ваших панелей, ресурсів і віджетів у Laravel. Ця стаття розкриває основні можливості пакету, включаючи просту установку та підтримку багатокористувацьких середовищ — не пропустіть!

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

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

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

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

Intervention Image: потужний інструмент для роботи з зображеннями у Laravel

Досліджуйте потужний пакет Intervention Image для PHP, який виводить редагування зображень на новий рівень з оновленою версією 3. Чи готові ви дізнатися, які нові можливості та функції чекають на вас у цьому інструменті