Laravel 5.2:会话值不;不要在不同的路线上坚持下去


Laravel 5.2 : Session values doesn't persist across different routes?

我使用的是Laravel 5.2。(我是Laravel的新用户)

我需要使用会话。当然,阅读不同路线/页面的会话值。这是一个简单的概念,简单地说:

  1. 保存路由中的一些会话值
  2. 从另一个不同的路由检索值

这是我用过的密码。

Route::get('write', function () {
    session()->put('food', 'banana');
    session()->save();
    echo session()->get('food'); // <------ Shows: 'banana'
});
Route::get('read', function () {
    echo session()->get('food'); // <------ Shows nothing*
});
  • 我错过了什么(或者)塞申斯的正确游戏方式是什么

谢谢大家。

原因是session()->pull()实际上从会话中提取了一个元素并将其从会话中删除。因此,在/write打电话后,您的会话中什么都没有。这就是为什么/read什么都拉不动的原因。

您应该在场景中使用session()->get('food'),而不是pull。还要确保您的路由使用web中间件。

Route::group(['middleware' => ['web']], function () {
    Route::get('write', function () {
        session()->put('food', 'banana');
        echo session()->get('food'); // <------ Shows: 'banana'
    });
    Route::get('read', function () {
        echo session()->get('food'); // <------ Shows 'banana' too
    });
});

另请查看官方文件以了解更多信息:https://laravel.com/docs/5.2/session.

在放入或修改内容后使用session()->save()

我通常通过立面Session::save()来完成;

如果没有保存,会话对象将不会知道它。