【发布时间】:2018-03-08 04:49:51
【问题描述】:
我有一个处理身份验证并设置一些会话变量的遗留应用程序;我需要在 Laravel 应用程序中访问这些会话变量。我尝试启动一个会话并访问控制器中的一个变量 - 这不起作用。我收到一个糟糕的错误 - 未定义的索引:名称
这是我尝试过的:
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。这两个应用程序位于同一服务器和域上。如何追踪正在发生的事情?
【问题讨论】:
-
尝试使用
dd($_SESSION)查看超级全局会话。这将使您更深入地了解原始会话数据的结构。 -
您可以正常访问它。只需使用
if(isset($_SESSION['name']))来检查$_SESSION['name']是否存在,然后再使用它。 -
@ceejayoz 请解释我的问题是如何重复的。我不明白。
-
这只是表示
name索引不存在。 -
@RogerCreasy,我也不确定他为什么将其标记为重复。连接的答案与您要查找的内容无关。希望这会有所帮助。您可以使用
session(['team_id' => $team_id]);设置会话变量,并且可以像这样访问它们:session($team_id)
标签: php laravel session-variables