升级到 Laravel 5.6 后,我遇到了 qeueable 模型序列化问题。
经过对 Xdebug 的一些调查,似乎循环 belongsTo
关系会产生无限循环,而 getQueueableRelations
尝试解析每个模型的关系。
在我的 Foo
模型中:
function selectedItem()
{
return $this->belongsTo(Item::class);
}
在我的 Item
模型中:
function foo()
{
return $this->belongsTo(Foo::class);
}
请注意,此遗留代码自 Laravel 5.1 起就存在于项目中,并且从未产生任何问题。
知道如何在不改变逻辑的情况下解决这个问题吗?
最佳答案
这是在 Laravel 将 getQueueableRelations
添加到 Eloquent 模型时引入的。您只需重写此方法以返回空数组即可使其像以前一样工作;
所以在你的模型中你可以这样做:
/**
* {@inheritdoc}
*/
public function getQueueableRelations()
{
return [];
}
您的序列化将像以前一样运行。
关于Laravel - getQueueableRelations 和循环关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52514863/