gpt4 book ai didi

php - 在 Laravel Eloquent 中获取和过滤关系

转载 作者:行者123 更新时间:2023-12-01 22:33:28 25 4
gpt4 key购买 nike

我在 Eloquent 中有以下模型:组、线程、评论和用户。我想查找特定用户在特定组中的所有评论。

这是我目前的做法:

$group->threads->each(function ($thread) use ($user_id)
{
$user_comments = $thread->comments->filter(function ($comment) use ($user_id)
{
return $comment->owner_id == $id;
});
});

这看起来非常丑陋,可能非常慢,我只想摆脱它。在 Eloquent 中获取结果集的最快和最优雅的方式是什么?

最佳答案

如果一个group有很多threads,而一个thread有很多comments,你可以添加另一个关系到group : group 通过threads 有许多comments

在组上:

public function comments() {
return $this->hasManyThrough('Comment', 'Thread');
}

现在,您可以通过$group->comments;

获取群组中的评论

从这里,您可以满足用户的要求:

$user_comments = $group->comments()->where('owner_id', $user_id)->get();

如果需要,您可以将 where 提取到 Comment 的范围内。

关于php - 在 Laravel Eloquent 中获取和过滤关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28436167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com