我试图缓存一组模型以及一个关系。但是,这会返回错误。
不允许序列化'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');
}
我之所以得到这个原因,是因为我压倒了模型中的__construct()
方法。