我正在尝试在发布请求的会话中保存数据,然后重定向到另一个页面
try {
$tenant = Tenant::where('email', '=', $request->input('email'))->firstOrFail();
} catch(Throwable $e) {
return redirect(route('portal.login'))->withErrors(['email' => 'We cannot find any tenant associated with this email address']);
}
$this->sendInvite($tenant);
$request->session()->put('tenant', $tenant);
$request->session()->save();
return redirect(route('portal.login.invite'));
我已确认会话数据已被存储。以下是会议的DD
array:4 [▼ // app/Http/Controllers/PortalController.php:55
"_token" => "hsD4WKNkqFGsVnOMfPhsDcbpj31UcW10ATyFvOQ2"
"_flash" => array:2 [▶]
"_previous" => array:1 [▶]
"tenant" => App\Models\Tenant {#1381 ▶}
]
但是当我尝试在重定向路由上验证此数据时,会话数据丢失了
if (!$request->session()->exists('tenant')) {
dd(session()->all());
return redirect(route('portal.login'));
}
会话数据:
array:3 [▼ // app/Http/Controllers/PortalController.php:72
"_token" => "hsD4WKNkqFGsVnOMfPhsDcbpj31UcW10ATyFvOQ2"
"_flash" => array:2 [▶]
"_previous" => array:1 [▶]
]
有人知道为什么会发生这种情况吗?我可以根据要求分享更多信息
更新: 将我的会话驱动器更改为文件可以正常工作,但 cookie 出了问题
我解决了这个问题。问题是 cookie 驱动程序存储在浏览器上时的内存非常有限。这就是为什么当我将驱动程序从 cookie 更改为 file 时它开始工作,因为文件驱动程序具有更大的内存容量。
因此,我没有将整个对象保存在 cookie 中,而是保存了 ID,然后它就开始工作了