我正在使用 NeoEloquent 处理多态关系/超边,其中用户在评论中提到另一个用户。就像是 :
(u1:User)-[:Mentions]-(u2:User)-[:IN]-(c:Comment)
我的目标是找到所有提到给定用户的评论以及那些提到这个用户的评论。所以我的模型是这样的:
用户模型:
public function mentionFriend(NeoEloquent $comment=null) : HyperMorph
{
return $this->hyperMorph($comment, UxUser::class, 'Mentions', 'IN');
}
public function whoMentioned():BelongsToMany {
return $this->belongsToMany(UxUser::class, 'Mentions');
}
public function whichComment(){
return $this->morphMany(Comment::class,'IN');
}
在评论模型中我有:
public function whoIsMentioned():MorphMany{
return $this->morphMany(UxUser::class,'IN');
}
通过使用下面的行,我可以正确获取所有提到该用户的用户,但 $comments 集合仅包含提到该用户的众多评论之一。
$user=Auth::user();
$who=$user->whoMentioned;
//dd($who);
$comment=$user->whichComment;
dd($comment);
对此有何建议?提前致谢