Laravel 的新手,在使用 Session 时遇到了一些问题。具体来说,从 Laravel 外部的 PHP 文件读取 session 数据。
例如,假设我像这样设置 session 变量:Session::put('isAuthorized', 'yes')
- 我可以在 Laravel 上下文中使用 Session::get('isAuthorized')
但以下 PHP 不会检索此 session key -
<?php
session_start();
echo $_SESSION['isAuthorized'];
?>
返回
Notice: Undefined index: isAuthorized in C:\xampp\htdocs\session.php on line 3
我尝试将 Laravel session 驱动程序设置为默认的 cookie
和 file
模式,结果相同。
最佳答案
你也可以写一个 session 适配器,所以 $_SESSION
变量将是它的一个实例:
<?php
class SessionAdapter implements \ArrayAccess {
public function offsetExists($offset) {
return Session::has($offset);
}
public function offsetGet($offset) {
return Session::get($offset);
}
public function offsetSet($offset, $value) {
return Session::put($offset, $value);
}
public function offsetUnset($offset) {
return Session::forget($offset);
}
}
然后在你的代码中的某处:
<?php
$_SESSION = new SessionAdapter();
// or
$GLOBALS['_SESSION'] = new SessionAdapter();
这样本地 PHP session 和 Laravel session 将“相同”。
关于php - Laravel session 在 native PHP 中不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14428785/