Laravel Cache:“不允许'关闭'序列化”

问题描述 投票:0回答:1

我试图缓存一组模型以及一个关系。但是,这会返回错误。

不允许序列化'Closure'

public static function cachedFaq()
{
    return Cache::remember('faq', 60 * 24 * 7, function () {
        return self::with(['articles'])
            ->whereHas('parent', function ($query) {
                $query->where('slug', 'faq');
            })
            ->get();
    });
}

当我通过删除with(['articles'])省略关系时,它可以工作。它在toArray()之后应用get()时也有效。

为什么不能回归这样的关系呢?

关系:

public function articles()
{
    return $this->hasMany(Article::class, 'category_id');
}

public function parent()
{
    return $this->belongsTo(ArticleCategory::class, 'parent_id');
}
laravel
1个回答
0
投票

我之所以得到这个原因,是因为我压倒了模型中的__construct()方法。

© www.soinside.com 2019 - 2024. All rights reserved.