如何使用 Eloquent 获取最多重复的值?

问题描述 投票:0回答:2

我在

Eloquent
中具有多对多关系(帖子和标签)。是否可以对数据透视表中的标签进行排序以获得 10 个最常用的标签?

pivot

laravel laravel-4 eloquent
2个回答
0
投票

是的,这是可能的,添加某种属性(到数据透视表并在每次从数据库中选择时更新它。(增加值)

并且在选择时使用 wherePivot 方法。

如果您想要“最近使用”,请向迁移中的数据透视表添加时间戳,并在每次选择时触摸数据透视表。


0
投票

是的,实际上非常简单。

在存储标签的表中添加另一列名为

count_cache
(或任何您想要的列),然后每次将标签实例添加到帖子实例时,在数据透视表中对
count()
进行
tag_id
操作,然后将值存储到标签表中的
count_cache
列。

然后您可以简单地获取按

count_cache
列(降序)排序的标签表,限制为 10。

如果您需要进一步解释,请发表评论:)

© www.soinside.com 2019 - 2024. All rights reserved.