我有一个Message ::类,我想为每个特定的消息获取线程消息。
如何使用Laravel和Eloquent :: hasMany
以递归方式获取消息等消息和消息等到目前为止,我尝试在hasMany()
上设置递归public function replys()
{
return $this->hasMany(Message::class, 'reply_to', 'id');
}
public function replies()
{
$r = $this->replys;
if(count($r->get('replys')) > 0){
foreach($r->get('replys') as $reply) {
$r->push(Message::create($reply)->replies());
}
}
return $r;
}
但我似乎错过了这个标志。目前我正在尝试查看是否可以使用数据透视表并引用belongsToMany
。让你知道事情的进展
答案 0 :(得分:0)
研究让我this thread建议如何通过hasMany
从而
public function replys()
{
return $this->hasMany(Message::class, 'reply_to', 'id');
}
public function replies()
{
return $this->replys()->with('replies');
}
不要认为这很容易,但我希望我可以保持简单,而不必设计复杂的原始查询语句。
我现在的问题是这种递归方法如何经得起大数据集?