如何在 Laravel 中获取会话 ID?
我想在 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:
相关文章