如何在 Laravel 中获取会话 ID?

2022-01-08 00:00:00 php laravel laravel-4

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

I want to get the id of the session in Laravel 4

在 Laravel 3 中,这有点 hacky,但可以使用以下代码:

In Laravel 3, it was a bit hacky, but possible with this code:

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

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

But I can't work it out in Laravel 4... referencing the Session::$instance object throws errors:

访问未声明的静态属性:IlluminateSupportFacadesSession::$instance

Access to undeclared static property: IlluminateSupportFacadesSession::$instance

试过了:

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

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

but to no avail.. any ideas?

推荐答案

取决于 Laravel 的版本:

Depends on the version of Laravel:

$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.2, Laravel 5.1, Laravel 5.2).

Laravel no longer uses the built-in PHP sessions directly, as a developer could choose to use various drivers to manage the sessions of visitors (docs for Laravel 4.2, Laravel 5.1, Laravel 5.2).

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

Because of this, now we must use Laravel's Session facade or session() helper to get the ID of the session:

相关文章