Флеш-сообщения Laravel не работают должным образом

Я сейчас в замешательстве. У меня есть приложение Laravel/Inertia/Vue, которое я пытаюсь Dockerize. Однако у меня проблема с флэш-сессией, которую я использую. У меня есть контроллер со следующим методом:

public function testMethod()
    {
        session()->put("success", "message1");
        return back()->with("testMessage", "message2");
    }

Когда мой компонент в Vue монтируется, я вызываю конечную точку, которая, в свою очередь, вызывает эту функцию с помощью адаптера $inertia.

mounted() {
        this.$inertia.post("/testEndpoint", {});
}

Я использую промежуточное программное обеспечение HandleInertiaRequests.php, как предложено в документации Inertia JS. Я определил метод общего доступа следующим образом:

public function share(Request $request): array
    {
        return array_merge(parent::share($request), [
            "flash" => function () {
                return [
                    "testMessage" => session()->get("testMessage"),
                    "success" => session()->get("success"),
                    "error" => session()->get("error"),
                    "status" => session()->get("status"),
                    "data" => session()->get("data")
                ];
            },
        ]);
    }

Когда я обновляю страницу и вызываю конечную точку, я получаю в ответ следующий объект:

{
    "component": "Landing",
    "props": {
        "flash": {
            "testMessage": null,
            "success": "message1",
            "error": null,
            "status": null,
            "data": null
        },
    },
    "url": "/",
    "version": "0f37ca5b6d996b9ca5092f1730b72791"
}

То есть сеансовый ключ «успеха» работает должным образом, но не «testMessage», созданный с помощью().

Я использую Laravel 10.39 и Inertia-laravel 0.6.9.

Спасибо за помощь!

Самое странное, что это работало до прошлой недели, и я не думаю, что с тех пор внес изменения, которые могли бы сломать приложение. Я даже пытался вернуться к предыдущей версии Git и пересобрать приложение, но теперь у меня та же проблема, которой раньше не было.

Я попытался очистить кеш приложения Laravel и не изменил содержимое/порядок своих промежуточных программ.

Эта ошибка появилась после того, как я пересобрал свои контейнеры, чего давно не делал. На прошлой неделе я немного поигрался с разрешениями для моих файлов-контейнеров. Может ли это быть причиной?

При добавлении dd(session()->isStarted()); к моему методу контроллера я получаю false. Я думаю, этого не ожидается, верно?

Cedric Prieels 08.04.2024 16:38
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

После нескольких дней расследования я наконец понял, что пошло не так! Это ошибка установленной мной панели отладки Laravel. Недавно вышла версия 3.13.0, вызывающая такое поведение; если я вернусь к 3.12.4, все будет работать нормально. Я сообщу о проблеме в репозитории пакета на GitHub.

Другие вопросы по теме