我想在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');
但无济于事......有什么想法吗?
答案 0 :(得分:77)
取决于Laravel的版本:
$session_id = $_COOKIE["laravel_session"];
不是版本4.1及以上版本:
$session_id = session_id(); //thanks Phill Sparks
$session_id = Session::getId();
或
$session_id = session()->getId()
Laravel不再直接使用内置的PHP会话,因为开发人员可以选择使用各种驱动程序来管理访问者的会话(Laravel 4.2,Laravel 5.1,Laravel 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();