Laravel 雄辩加入 vs 内在加入?
因此,我在弄清楚如何进行feed样式的mysql调用时遇到了一些麻烦,我不知道这是一个雄辩的问题还是mysql问题。我相信这在两者中都是可能的,我只是需要一些帮助。
所以我有一个用户,他们去他们的提要页面,在这个页面上,它显示他们朋友的东西(朋友投票,朋友评论,朋友状态更新)。所以假设我有汤姆,蒂姆和泰勒作为我的朋友,我需要得到他们所有的投票,评论,状态更新。我该怎么做?我有一个按ID号列出的所有朋友的列表,并且我有每个事件(投票,评论,状态更新)的表格,其中存储了Id以链接回用户。那么我怎么能一次获得所有这些信息,这样我就可以以形式在Feed中显示它。
蒂姆评论“酷”
泰勒说:“哇第一次状态更新~!
泰勒被评为“有史以来最佳比赛”
编辑@damiani 因此,在进行模型更改后,我有这样的代码,并且它确实返回了正确的行
$friends_votes = $user->friends()->join('votes', 'votes.userId', '=', 'friend.friendId')->orderBy('created_at', 'DESC')->get(['votes.*']);
$friends_comments = $user->friends()->join('comments', 'comments.userId', '=', 'friend.friendId')->orderBy('created_at', 'DESC')->get(['comments.*']);
$friends_status = $user->friends()->join('status', 'status.userId', '=', 'friend.friendId')->orderBy('created_at', 'DESC')->get(['status.*']);
但是我希望它们同时发生,这是因为mysql按顺序对数千条记录进行排序比php获取3个列表,合并它们然后执行此操作快100倍。有什么想法吗?