错误是:
不允许对“关闭”进行序列化
错误:
... / vendor / laravel / framework / src / Illuminate / Cache / RedisStore.php:295
第一次永久记住Cache时抛出。 第二次尝试后(重新加载浏览器时),它应能正常工作。
public function cache()
{
$task = $this;
return Cache::rememberForever('apply:' . $task->apply->slug . ':' . $task->slug, function () use ($task) {
return $task;
});
}
有趣的部分是这个。因此,它适用于在Apply的索引页面上缓存$apply
。 (代码相同)
注意:此问题与Redis直接相关。请不要提及有关序列化的旧问题。您也可以查看Laravel 6.x官方文档。与此相关的所有内容均已添加:https://laravel.com/docs/6.x/cache#retrieving-items-from-the-cache
答案 0 :(得分:0)
我通过手动存储和返回数据(如果数据存在于缓存中)来修复它(rememberForever()
应该如何工作)。
public function cache () {
$slug = 'task:'.$this->slug;
if(Cache::has($slug)) return Cache::get($slug);
if(!Cache::put($slug, $this)) throw new ProtocolException(1045);
return Cache::get($slug);
}