HasManyThrough
- только дает вам поддержку чтения
- вам нужно будет позвонить
get
, чтобы получить элементы
- вам нужно вручную создать записи в таблице соединений
MappedManyToMany
- также обрабатывает записи
- можно использовать как коллекцию (например, добавлять и удалять объекты с
+=
и -=
)
- записи таблицы присоединения будут созданы автоматически
По крайней мере, это те различия, которые я заметил при переходе от HasManyThrough
к MappedManyToMany
в моем проекте.
Так что я думаю, MappedManyToMany
- новая версия и является предпочтительной, в то время как HasManyThrough
, вероятно, хранится по соображениям совместимости.