Я начинаю использовать Doctrine 2 в проекте с сущностью «Группа», которая может наследоваться от другой группы, имеющей следующую схему: id | parent_id | name
Поскольку иерархия может углубляться, я используютаблица связывания "group_group", использующая эту схему: ancestor_id | descendant_id | depth
Идея состоит в том, что любая группа связана со всеми ее предками и потомками, а поле depth
указывает расстояние отношения,так что мне не нужно перебирать родителей или детей, использующих много SQL-запросов, один может получить все результаты.Я попытался использовать отношение ManyToMany
в Doctrine, но не смог упорядочить его по полю depth
, поэтому вместо этого я использую репозиторий сущности для получения связанных предков и потомков.
Поскольку сущность можетне получая доступ к своему хранилищу, я хотел бы знать, существует ли у сущности способ отправлять события, которые могут прослушиваться его хранилищем, так что, когда сущность пытается получить доступ к своим предкам / потомкам, хранилище может ответить?
Спасибо за вашу помощь.