我在
Eloquent
中具有多对多关系(帖子和标签)。是否可以对数据透视表中的标签进行排序以获得 10 个最常用的标签?
是的,这是可能的,添加某种属性(到数据透视表并在每次从数据库中选择时更新它。(增加值)
并且在选择时使用 wherePivot 方法。
如果您想要“最近使用”,请向迁移中的数据透视表添加时间戳,并在每次选择时触摸数据透视表。
是的,实际上非常简单。
在存储标签的表中添加另一列名为
count_cache
(或任何您想要的列),然后每次将标签实例添加到帖子实例时,在数据透视表中对 count()
进行 tag_id
操作,然后将值存储到标签表中的count_cache
列。
然后您可以简单地获取按
count_cache
列(降序)排序的标签表,限制为 10。
如果您需要进一步解释,请发表评论:)