gpt4 book ai didi

laravel - 为什么只能第一次序列化 'closure'?

转载 作者:行者123 更新时间:2023-12-02 07:06:35 26 4
gpt4 key购买 nike

错误是:

Serialization of 'Closure' is not allowed

错误:

.../vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php:295

第一次在缓存上永远记住时抛出。第二次尝试后(重新加载浏览器时),它可以正常工作。

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

最佳答案

我通过手动存储和返回数据(如果缓存中存在数据)来修复它(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);
}

关于laravel - 为什么只能第一次序列化 'closure'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58993336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com