我试图将完整的页面视图存储到缓存中,但错误的是"序列化'关闭'不允许"发生了。在控制器中我的代码是这样的:
$view = Cache::remember('articles_index', 5, function () {
return view('template.blade.php'); // this is some rendered html string
});
我不知道原因,所以试图谷歌查找,但谷歌的结果并不完全是我想要的... 过了一会儿,我找到了一个临时解决方案。
$view = Cache::remember('articles_index', 5, function () {
return htmlspecialchars(view('template.blade.php'));
});
这种缓存方式有效,但它可能会破坏html的某些部分。 仍在努力寻找完美的解决方案......
这个问题可能会多次更新......
答案 0 :(得分:5)
您的第一个示例是尝试缓存View
对象,而不是HTML(字符串)。需要渲染视图,转换为字符串输出。
(string) view(...)
或view(...)->render()
会给你一个字符串。
当您从路线返回视图时,Laravel知道为您渲染它们。