首先,我对不起我的英语。
我正在使用Laravel 5.5进行项目。*。当我加载用户仪表板索引时,该函数返回一个包含一些信息的视图。当这个视图完全加载时,我执行一个AJAX调用,它会给我一个图表。
到目前为止一直很好,虽然它持续了太多秒才能完成。这就是我想使用缓存(文件类型选项)的原因。
问题在于,当我重新加载页面时,似乎Laravel删除了所有缓存文件并尝试重复所有步骤,而不是使用缓存中保存的所有数据。我试图在没有成功的情况下搜索有关此问题的信息。
有人知道如何解决吗?
PS:可能我的代码稍后会有所改进,但这里的内容是关于缓存
这是我的代码的一部分
if(!cache()->has('incomes') || !cache()->has('total') || !cache()->has('dates'))
{
$end_date = Carbon::now();
$start_date = Carbon::now()->subDays(30);
if(!cache()->has('dates'))
{
$formated_dates = $this->generateDateRange($start_date, $end_date,'d/m/Y');
cache()->put('dates', $formated_dates, $this->getDiffInMinutes());
}
if(!cache()->has('incomes') || !cache()->has('total'))
{
$dates = $this->generateDateRange($start_date, $end_date,'Ymd');
$response = json_decode($this->graphics->getDataIncomeGraphics($dates, 1,1,1)->getBody()->getContents());
$success = ($response->success <= 0) ? 0 : 1 ;
if(!$success)
{
$strErr = 'ERROR';
$incomes = '';
return response()->json([
'success' => $success,
'error' => [$strErr],
'incomes' => $incomes,
]);
}
$minutes = $this->getDiffInMinutes();
cache()->put('incomes', $response->incomes, $minutes);
cache()->put('total', $response->total, $minutes);
}
}
return response()->json([
'success' => $success,
'error' => [$strErr],
'incomes' => cache('incomes'),
'dates' => cache('dates'),
'total' => cache('total'),
]);
先谢谢大家。
答案 0 :(得分:0)
最后我发现了问题和解决方案。我在其中一个部分中出错,我试图在用户点击退出按钮后刷新缓存。
非常感谢蒂姆的回答,很抱歉打扰了你们所有人。