52

我想在 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');

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

4

3 回答 3

101

取决于 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:

于 2013-05-29T11:35:03.607 回答
45

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

不得不使用这个:

Session::getId();
于 2013-12-18T12:10:50.743 回答
5

在 laravel 5.5 中,首先将其写入您的控制器use Session; 并在您的控制器函数中写入以下行session()->getId();

于 2017-10-17T19:49:08.760 回答