Как получить идентификатор сеанса в Laravel?
Я хочу получить идентификатор сеанса в Laravel 4
В Laravel 3 это было немного взломанно, но возможно с помощью этого кода:
$session_id = Session::$instance->session['id'];
Но я не могу это обработать в Laravel 4... ссылка на объект Session::$instance
вызывает ошибки:
Доступ к необъявленному статическому свойству: Illuminate\Support\Facades\Session:: $instance
попытались:
$session_id = Session::get('id');
но безрезультатно.. любые идеи?
Ответы
Ответ 1
Зависит от версии 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-сессии напрямую, так как разработчик может использовать различные драйверы для управления сессиями посетителей (docs для Laravel 4.2, Laravel 5.1, Laravel 5.2).
Из-за этого теперь мы должны использовать Laravel Session
facade или session()
helper, чтобы получить идентификатор сеанса:
Ответ 2
Просто у меня была небольшая охота за собой,
потому что вышеупомянутые ответы не сработали для меня (Laravel 4.1)...
Пришлось использовать это:
Session::getId();
Ответ 3
в laravel 5.5 сначала напишите это в своем контроллере use Session;
и внутри вашей функции контроллера напишите следующую строку session()->getId();