我有一个名为 replies 的表,包含论坛 Laravel 应用程序中主题的所有回复。
**replies Table**
---------------
reply_id
content
topic_id
reply_by
embed_reply
created_at
updated_at
回复可以包含另一个回复。为此,有一个名为embed_reply
的列,它保存了所包含回复的reply_id
。
现在我想在获取父回复时同时获取所包含回复的详细信息。
为此,我在回复模型中添加了以下方法:
public function included_reply ()
{
return $this->with('replies', function ($query) {
$query->where('reply_id',$this->embed_reply);
});
}
如果要获取特定主题的回复,可以这样写:
$topic = Topic::whereTopicId($id)
->with([
'replies' => function ($query) {
$query->orderBy('created_at', 'desc');
}
, 'replies.included_reply'
])
->first();
下面的所有内容都返回以下错误:
BadMethodCallException in Builder.php line 2071:
Call to undefined method Illuminate\Database\Query\Builder::replies()
我不知道如何做到这一点。 有什么解决方法?