如何在Laravel中获取会话ID?

时间:2013-05-29 11:31:56

标签: php laravel laravel-4

我想在Laravel 4中获得会话的ID

在Laravel 3中,它有点hacky,但可能使用此代码:

$session_id = Session::$instance->session['id'];

但我无法在Laravel 4中解决这个问题...引用Session::$instance对象会引发错误:

  

访问未声明的静态属性:Illuminate \ Support \ Facades \ Session :: $ instance

尝试过:

$session_id = Session::get('id');

但无济于事......有什么想法吗?

3 个答案:

答案 0 :(得分:77)

取决于Laravel的版本:

Laravel 3:

$session_id = $_COOKIE["laravel_session"];

Laravel 4.0:

不是版本4.1及以上版本:

$session_id = session_id(); //thanks Phill Sparks

Laravel 4.1(及以后):

$session_id = Session::getId();

$session_id = session()->getId()

Laravel不再直接使用内置的PHP会话,因为开发人员可以选择使用各种驱动程序来管理访问者的会话(Laravel 4.2Laravel 5.1Laravel 5.2的文档)。

因此,现在我们必须使用Laravel的Session外观或session()助手来获取会话的ID:

答案 1 :(得分:36)

只是为自己寻找一点, 因为上述答案对我不起作用(Laravel 4.1)......

不得不使用它:

Session::getId();

答案 2 :(得分:1)

in laravel 5.5 first write this in your controller use Session; and inside your controller function write the following linesession()->getId();