Почему флэш-сообщения Ларавела не сохраняются после перенаправления в Laravel 11, и как я могу исправить это, все еще исPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему флэш-сообщения Ларавела не сохраняются после перенаправления в Laravel 11, и как я могу исправить это, все еще ис

Сообщение Anonymous »

laravel 11: не могу получить обычные сеансы и флэш -сообщения, работающие одновременно < /h1>
Проблема < /h2>
Я испытываю конфликт в Ларавеле 11 где я могу получить только обычные сеансы или флэш -сообщения, но не оба: < /p>

[*] Когда прокомментируется промежуточное программное обеспечение: Flash Messages работают, но обычные сеансы Don 't УСТАНОВИТЬ < /li>
Когда промежуточное программное обеспечение неуместно: нормальные сеансы работают, но флэш -сообщения исчезают после перенаправления < /li>
< /ol>
code < /h2>
контроллер: < /h3>

Код: Выделить всё

public function switchLang(Request $request, $locale)
{
$request->session()->put('locale', $locale); // Normal session

return redirect()
->back()
->with('flash_message', '语言更换成功.') // Flash message
->with('flash_type', 'success');
}
< /code>
 view: < /h3>
{{-- Flash Message --}}
@if(session('flash_message'))

{{ session('flash_message') }}

@endif

{{-- Normal Session --}}
{{ session('locale') }}
< /code>
 конфигурация Aapp.php, которая делает флэш-работу, но разбивает нормальные сеансы: < /h3>
return Application::configure(basePath: dirname(__DIR__))
->withMiddleware(function (Middleware $middleware) {
// Commenting these out makes flash messages work but breaks normal sessions
// $middleware->use([
//     \Illuminate\Session\Middleware\StartSession::class,
//     \Illuminate\View\Middleware\ShareErrorsFromSession::class,
//     \App\Http\Middleware\VerifyCsrfToken::class,
// ]);
})
->create();
< /code>
 конфигурация php.php, которая заставляет обычные сеансы работать, но разрывает Flash: < /h3>
return Application::configure(basePath: dirname(__DIR__))
->withMiddleware(function (Middleware $middleware) {
// Uncommenting these makes normal sessions work but breaks flash messages
$middleware->use([
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
]);
})
->create();
конфиг/session.php:

Код: Выделить всё

return [
'driver' => env('SESSION_DRIVER', 'database'),
'lifetime' => env('SESSION_LIFETIME', 120),
'expire_on_close' => false,
'encrypt' => env('SESSION_ENCRYPT', false),
'files' => storage_path('framework/sessions'),
'connection' => env('SESSION_CONNECTION'),
'table' => env('SESSION_TABLE', 'sessions'),
'store' => env('SESSION_STORE'),
'lottery' => [2, 100],
'cookie' => env(
'SESSION_COOKIE',
Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
),
'path' => env('SESSION_PATH', '/'),
'domain' => env('SESSION_DOMAIN'),
'secure' => env('SESSION_SECURE_COOKIE'),
'http_only' => env('SESSION_HTTP_ONLY', true),
'same_site' => env('SESSION_SAME_SITE', 'lax'),
'partitioned' =>  env('SESSION_PARTITIONED_COOKIE', false),
];
< /code>
 журналы отладки < /h2>
Когда Flash работает (но нормальные сеансы не делают): < /p>
[2024-11-21 02:26:00] First Request:
{
"_token": "o5IooR4tva9abbacvE14SPzS1EKR7XKj7RKO8UWt",
"_flash": {"old": ["flash_message", "flash_type"], "new": []},
"flash_message": "语言更换成功.",
"flash_type": "success"
}
< /code>
Когда обычные сеансы работают (но Flash нет): < /p>
{
"_token": "o5IooR4tva9abbacvE14SPzS1EKR7XKj7RKO8UWt",
"_flash": {"old": [], "new": []},
"locale": "en"
}
< /code>
 среда < /h2>

 Версия Laravel: 11 < /li>
 PHP версия: 8.2 < /li>
 Драйвер сеанса: база данных < /li>
 Конфигурация сеанса: с помощью драйвера базы данных < /li>
< /ul>
 Что я пробовал < /h2>

 Использование session ()-> flash () < /code> < /li>
 Использование redirect ( )-> с () 
[*] Направление конфигурации промежуточного программного обеспечения в app.php
[*] Проверка заказа промежуточного программного обеспечения
Проверенная таблица сеансов существует, и миграция актуальна < /li>
Созданная пользовательская реализация флэш-памяти (работает, но хочу использовать встроенную функциональность Laravel) < /li>
< /ol>
теги: laravel , php , sessions , flash-messages , laravel-11


Подробнее здесь: https://stackoverflow.com/questions/792 ... vel-11-and
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»