提问人:Decrypt 提问时间:11/17/2023 最后编辑:Decrypt 更新时间:11/20/2023 访问量:21
如何在Laravel会话中存储大数据
How to Store Large Data in Laravel Session
问:
我在 Laravel 的导入过程中尝试处理大型错误收集时遇到了一个问题。我试图在会话中存储序列化错误集合,但是当集合大小超过某个限制时,由于内存限制(我猜)而无法存储它。
代码如下:
public function import(Request $request)
{
// ... other codes
DB::beginTransaction();
try {
$import = new EmployeeImport;
Excel::import($import, $request->file('file_attachment'));
if ($import->failures()->isNotEmpty()) {
$errors = collect();
foreach ($import->failures() as $failure) {
$rowNumber = $failure->row();
$attribute = $failure->attribute();
$errorMessages = $failure->errors();
$errors->push([
'rowNumber' => $rowNumber,
'attribute' => $attribute,
'messages' => $errorMessages,
]);
}
DB::rollBack();
$serializedCollection = serialize($errors);
// dd($serializedCollection); // passed
return redirect()->route('employee.index')->with('import_error', $serializedCollection);
}
// ...
} catch (\Throwable $th) {
// ... catch any error
}
}
}
我正在使用 Laravel 的方法将序列化错误集合 () 传递给会话。
当错误收集变得太大时,数据似乎没有存储在会话中,这可能是由于内存限制。
我在处理大型错误集合并在导入失败时向用户显示它们方面面临挑战。with()
$serializedCollection
如何在导入过程中有效地处理大型错误收集并将它们存储在会话中,而不会面临 Laravel 中的内存限制? 是否有替代方法或最佳实践来管理和向用户显示大型错误集合,而无需严重依赖会话存储? 关于在导入过程中处理Laravel中的大量错误收集的任何指导或建议将不胜感激。谢谢。
答: 暂无答案
评论