如何从laravel中的数据库获取会话值

时间:2016-10-15 06:07:21

标签: php laravel session laravel-5

这是我的代码

class CreateSessionsTable extends Migration
{
public function up()
    {
        Schema::create('sessions', function (Blueprint $table) {
            $table->string('id')->unique();
            $table->text('payload');
            $table->integer('last_activity');
        });
    }
    public function down()
    {
        Schema::drop('sessions');
    }
}

config/session.php文件已更改'driver' => env('SESSION_DRIVER', 'database'), 在DB表中创建了。 当用户登录时,我使用下面的代码将值推送到会话

Session::put('userid', $userid);
Session::put('useremail', $useremail);

然后我检查了会话的另一种方法

$data = Session::all();
        var_dump($data);

它像这样返回,

array (size=3)
  '_token' => string 'kD3zC2YF4v63RF1EkAVe0YoM4zLj9kGtiV4vpEzG' (length=40)
  '_previous' => 
    array (size=1)
      'url' => string 'http://localhost/Login' (length=28)
  'flash' => 
    array (size=2)
      'old' => 
...

那么如何从db获取该用户值。

2 个答案:

答案 0 :(得分:1)

添加

Session::save();

工作正常

答案 1 :(得分:0)

您使用的是哪种Laravel版本?如果是5.3,请尝试以下操作:

//Store value
$request->session()->put('key', 'value');

//Get value
$value = $request->session()->get('key', 'valueIfItsNotReturned');

第二个参数是如果会话中不存在密钥将返回的默认值。

如果它不起作用,请通过将会话驱动程序更改为文件来查看是否出现同样的问题。