首页 > 解决方案 > Laravel 会话返回 NULL

问题描述

我的 Laravel 5.5 实例在 localhost 上运行良好,但是,当我将它上传到服务器时,会话不起作用。我已经将会话驱动程序设置为数据库,并且可以看到存储在数据库中的数据。

在此处输入图像描述

问题是读取总是返回 null 的会话。

function index(Request $request)
{
    if ($request->input('set_sess')) {
        try {
            $request->session()->put('test', 'xxx');
            $request->session()->save();
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
        dd('session was set');
    }

    if ($request->input('get_sess')) {
        dd($request->session()->get('test'));
    }
}

会话.php

'driver' => env('SESSION_DRIVER', 'database'),
'encrypt' => false,
'connection' => 'mysql',
'table' => 'sessions',
'domain' => 'example.com',
'secure' => false,

.env

APP_NAME=examplename
APP_ENV=local
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://example.com

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=database
SESSION_LIFETIME=120

标签: phplaravellaravel-5

解决方案


请试试这个:(你不需要->save()

代替:

$request->session()->put('test', 'xxx');
$request->session()->save();

和:

session()->put('test', 'xxx');

推荐阅读