Flash-данные не записываются в сеанс

Я использую Laravel 7.12.0, и данные моего флеш-сеанса, похоже, вообще не работают, используя

request()->session()->flash('status', 'Task was successful!');

или

return redirect()->route('home')->with('status', "Task was successful");

Я использую Debugbar, а также открываю страницу для проверки данных сеанса.

Я также знаю, что используется промежуточное программное обеспечение для сети.

session()->put()все еще работает, поэтому я знаю, что размещение данных в сеансе не полностью нарушено, но флэш-данные, похоже, вообще не работают. Это новая установка, поэтому я пытаюсь понять, что может быть не так?

Web.php

Auth::routes();


Route::get('/', 'HomeController@index')->name('home');

Route::group(['middleware' => ['auth']], function () {
    Route::resource('polls', 'PollController');
    Route::post('polls/vote', 'PollController@vote')->name('polls.vote');
});

Route::resource('api/polls', 'API\PollController');

Часть RouteServiceProvider.php

    /**
     * Define the "web" routes for the application.
     *
     * These routes all receive session state, CSRF protection, etc.
     *
     * @return void
     */
    protected function mapWebRoutes()
    {
        Route::middleware('web')
            ->namespace($this->namespace)
            ->group(base_path('routes/web.php'));
    }

Группа веб-промежуточного ПО в kernel.php

    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

        'api' => [
            'throttle:60,1',
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],
    ];

HomeController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{

    public function index()
    {
        dd(request()->session()->all());
    }
}

Что находится в сеансе из моего HomeController@index после перенаправления.

  "_token" => "pbZJgfC6XNG2eTqlcGADm68NqhjOHI16rWe4U1bt"
  "_previous" => array:1 [▼
    "url" => "http://127.0.0.1:8000"
  ]
  "_flash" => array:2 [▼
    "old" => []
    "new" => []
  ]
  "url" => []
  "login_web_59ba36addc2b2f9401580f014c7f58ea4e30989d" => 1
]

Благодарность

1 ответ

Похоже, это связано со средой размещения. Мне удалось воспроизвести проблему на моем локальном компьютере при использовании http://127.0.0.1:8000/. После переключения на http://localhost:8000/ сеансы начали сохраняться, как и ожидалось, с обоими ->flash и ->with.

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