【问题标题】:Laravel 5.4 Session not storingLaravel 5.4 会话不存储
【发布时间】:2017-11-19 06:50:49
【问题描述】:

我正在尝试获取一个简单的会话来存储一个值,但无法保存它。 我查看了有关此的类似帖子,并尝试了他们的建议,但没有任何运气。这是我所做的:

在中间件组中使用“web”

Route::group(['middlewareGroups' => ['web']], function() {
    ...

在中间件中使用“web”,也可以手动使用

Route::group(['middleware' => ['web']], function() {
    ...

和

$this->middleware('web');

使用Session::put、session() 全局和$request->session() 甚至$_SESSION

Found this article 并尝试了答案,但仍然没有。我正在使用文件来存储我的会话

在我的 Kernel.php 中添加了以下内容

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    \Barryvdh\Cors\HandleCors::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class
];

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class
    ],

    'api' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Session\Middleware\StartSession::class,
        'throttle:60,1',
        'bindings',
    ],
];

但什么都没有!也许你们可以阐明一些?非常感谢。

【问题讨论】:

  • 文件存放在哪里,文件夹的访问规则是什么? Web 服务器需要写入权限才能将会话文件存储在那里
  • 你为什么要开始两次会话?
  • 我认为您的问题是在全球和网络组中都有 StartSession。尝试从 $middleware 中删除除 CheckForMaintenanceMode 之外的所有内容。
  • 恐怕不行,删除那些会导致错误:Session store not set on request

标签: php laravel session laravel-5


【解决方案1】:

我在 Laravel 5.4 中遇到了同样的问题
我发现添加 save 方法解决了这个问题。

Session::put('key', $value);
Session::save();

希望对您有所帮助。干杯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-30
    • 2018-06-25
    • 1970-01-01
    • 2017-07-02
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多