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

时间:2018-11-30 23:33:33

标签: laravel

我正在尝试将模型集合与关系一起缓存。但是,这将返回错误。

  

不允许对“关闭”进行序列化

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');
}

1 个答案:

答案 0 :(得分:0)

之所以要这么做,是因为我重写了模型中的__construct()方法。