好吧,这是一个奇怪的。我最初遇到了设置会话值的一些问题,但事实证明这是因为我并没有return
来自设置会话值的控制器方法。
我解决了这个问题并让我的用户控制器正常工作,而且它的工作正常。
我在UserController
中设置如下。看起来文档引用了一些与会话交互的不同方式,但session()
方法似乎是更标准的方法 - 至少基于流明文档(http://lumen.laravel.com/docs/session)。
session([
'is_logged_in' => true,
'username' => $user->getUsername(),
'user' => $user,
]);
我正在这样做:
$user = session('user')
现在我尝试在单独的控制器AdminController
中引入一些新功能。我想在那里设置一个额外的变量:
session(['new_variable' => 1])
但该会话变量实际上并未保存到会话中。
现在这里变得奇怪了。我目前正在使用cookie
驱动程序执行此操作。如果我更改为file
驱动程序,那么一切都会按预期完成。
此外,使用cookie
驱动程序,如果我在原始UserController
内设置该变量,而不是AdminController
,那么也正确地保留了会话数据。
但是,使用AdminController
驱动程序从cookie
设置会话数据并不起作用。
我想也许这可能与Cookie上的path
设置有关,但似乎所有Cookie路径都设置为' /' (正如你所料)。此外,没有任何不同的域用于此其他控制器 - 它位于同一个域中。