У меня есть отношение много ко многим (сообщения и метки) в Eloquent
. Можно ли заказать теги в сводной таблице, чтобы получить 10 наиболее часто используемых тегов?Как получить самые повторяющиеся значения с Eloquent?
ответ
Да, это возможно, добавить какой-то атрибут (в сводной таблице и обновлять его при каждом выбрать из базы данных. (Увеличить значение)
И при выборе использования wherePivot метод.
Если вы хотите «последние использованным», добавить метки к сводной таблице в вашей миграции и сенсорной сводной таблице на каждый выбор.
Да это на самом деле очень просто сделать это.
В таблице, хранятся ваши теги добавить еще один столбец с именем count_cache
(или что вы хотите), то каждый раз при добавлении экземпляра тега к сообщению, например сделать count()
из tag_id
в сводной таблице и сохранить значение на столбец count_cache
в таблице тегов.
Тогда вы можете просто получить таблицу тегов заказанного count_cache
collumn (нисходящем) с пределом 10.
Если вам нужна дополнительная объяснение пожалуйста, комментарий :)
идея ясна, но как сделать это? Мне нужно как-то инициировать инкремент по методу 'sync'. – user1692333
Просьба предоставить дополнительную информацию, разместить связанный контроллер, ваши модели или ваши репозитории, если таковые имеются, чтобы я мог вам помочь. –
Для чего? Я использую метод sync для добавления тегов в сообщения. Поэтому мне просто нужно каким-то образом инициировать настраиваемый метод, когда 'sync' называется – user1692333