Використання Flash Session Data у Laravel

1
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Ознайомтеся з простими та ефективними методами управління тимчасовими даними сесій у Laravel! У нашій статті розглянуто, як використовувати методи flash для реалізації повідомлень про статус, сповіщень та інших важливих нотаток у вашому додатку

Laravel надає зручну систему для управління тимчасовими сесійними даними через методи flash. Цей підхід ідеально підходить для реалізації статусних повідомлень, сповіщень та інших короткочасних повідомлень у вашому додатку.

Основна реалізація зберігає дані лише на наступний запит:

$request->session()->flash('status', 'Завдання виконано успішно!');

Laravel пропонує кілька спеціалізованих методів flash для різних ситуацій:

// Продовжити термін дії всіх flash даних на один запит
$request->session()->reflash();
 
// Вибірково продовжити конкретні flash елементи
$request->session()->keep(['username', 'email']);
 
// Flash дані, доступні лише в поточному запиті
$request->session()->now('status', 'Операцію завершено');

Ось як ці методи працюють у практичній системі сповіщень:

class NotificationController extends Controller
{
    public function processForm(Request $request)
    {
        try {
            DB::transaction(function () use ($request) {
                // Обробка даних форми
                $result = $this->processData($request->all());

                // Flash повідомлення про успіх для наступного запиту
                $request->session()->flash('message', 'Форма оброблена успішно');
                $request->session()->flash('details', [
                    'id' => $result->id,
                    'timestamp' => now()->toDateTimeString()
                ]);

                // Умовне збереження на основі вподобань користувача
                if ($request->has('show_details')) {
                    $request->session()->keep(['details']);
                }
            });

            return redirect()->route('dashboard');

        } catch (Exception $e) {
            logger()->error('Обробка форми не вдалася', ['error' => $e->getMessage()]);

            // Негайна помилка для поточного запиту
            $request->session()->now('error', 'Обробка не вдалася');

            return back()->withInput();
        }
    }
}

Flash сесійні дані забезпечують спрощений підхід до повідомлень на основі запитів без складнощів, пов’язаних із постійними механізмами зберігання, що робить ваш додаток більш чутливим та зручним для користувачів

Популярні

Logomark Logotype

"SQLSTATE[HY000] [2002] Connection refused" у Laravel в GitHub Actions

Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!

Logomark Logotype

Усе, що нам відомо про Livewire 4

Нова версія Livewire 4, представленої Келебом Порзіо на Laracon US 2025, обіцяє значні покращення у швидкості та організації компонентів. Які з інноваційних функцій підкорять ваше серце? Читайте далі, щоб дізнатися більше про те, як Livewire 4 полегшить вашу роботу

Logomark Logotype

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

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