Laravel的新手,并且在Sessions方面遇到了一些问题.具体来说,从Laravel之外的PHP文件中读取会话数据.
例如,假设我像这样设置会话变量:Session::put('isAuthorized', 'yes')- 我可以在Laravel上下文中检索这个,Session::get('isAuthorized')但是以下PHP不会检索此会话密钥 -
<?php
session_start();
echo $_SESSION['isAuthorized'];
?>
Run Code Online (Sandbox Code Playgroud)
回报
Notice: Undefined index: isAuthorized in C:\xampp\htdocs\session.php on line 3
Run Code Online (Sandbox Code Playgroud)
我尝试将Laravel会话驱动程序设置为默认cookie和file模式,结果相同.
您还可以编写会话适配器,因此该$_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);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在代码中的某个地方:
<?php
$_SESSION = new SessionAdapter();
// or
$GLOBALS['_SESSION'] = new SessionAdapter();
Run Code Online (Sandbox Code Playgroud)
这样本地PHP会话和Laravel会话将"相同".