有没有办法在Laravel中访问PHP本机会话变量?
问题描述:
我有一个遗留应用程序处理auth并设置一些会话变量;我需要访问Laravel应用程序中的这些会话变量。我试着开始一个会话并访问控制器中的一个变量 - 这是行不通的。我得到一个糟糕的错误 - 未定义指数:命名
这里是我的尝试:有没有办法在Laravel中访问PHP本机会话变量?
public function __construct()
{
session_start();
}
public function index()
{
//test output php (not Laravel) sessions
echo "TEST CONTROLLER ACCESSED!!\n\n";
print_r($_SESSION['name']);
}
我也试过同样的方法在路由中的关闭。两个失败。
是否有内Laravel访问PHP本地会话变量的方法吗?
编辑
我不明白我的问题被标记为重复。引用的答案是关于我得到的错误。它不回答我的问题。我明白错误意味着什么,我需要知道为什么会话不可用于Laravel。
请让我知道你需要的任何其他信息。
编辑2
$ _SESSION ['name']存在于旧版应用程序中,但未传递给Laravel。这两个应用程序都在同一台服务器和域上。如何追踪发生了什么?
答
我希望在此发布,它可以帮助别人。
事实证明,遗留应用程序使用非标准session.save_path (我正在处理一个非常大的代码库,所以这个事实并不像看起来那么明显)。
的解决方案是设置路径保存到Laravel相同的位置。 ini_set('session.save_path', '/path/to/sessions/');
这做之前session_start()
见关于PHP命令here信息。
尝试寻找到会话中使用'DD超级全局($ _ SESSION)'。这将使您更深入地了解原始会话数据的结构。 – Aknosis
你正在访问它就好了。在使用之前,只需使用if(isset($ _ SESSION ['name']))'来检查$ _SESSION ['name']是否存在。 – ceejayoz
@ceejayoz请解释我的问题是如何重复的。我不明白。 –