2017-09-26 101 views
0

我有一个遗留应用程序处理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。这两个应用程序都在同一台服务器和域上。如何追踪发生了什么?

+0

尝试寻找到会话中使用'DD超级全局($ _ SESSION)'。这将使您更深入地了解原始会话数据的结构。 – Aknosis

+0

你正在访问它就好了。在使用之前,只需使用if(isset($ _ SESSION ['name']))'来检查$ _SESSION ['name']是否存在。 – ceejayoz

+0

@ceejayoz请解释我的问题是如何重复的。我不明白。 –

回答

0

我希望在此发布,它可以帮助别人。

事实证明,遗留应用程序使用非标准session.save_path (我正在处理一个非常大的代码库,所以这个事实并不像看起来那么明显)。

的解决方案是设置路径保存到Laravel相同的位置。 ini_set('session.save_path', '/path/to/sessions/');

这做之前session_start()

见关于PHP命令here信息。

相关问题