У меня есть класс наследования, как показано здесь:
Как вы можете легко видеть у пользователей, здания и отели имеют адреса (более одного), а в таблице адресов хранится идентификатор владельца, в столбце которого
.
- Правильна ли моя логика?
- Допустим, я хочу получить адрес пользователя (или здания или гостиницы), чей идентификатор равен 2; я должен выполнить оператор DQL (и как?) или я могу получить его с помощью функции
find()
без DQL?
И я буду рад, если вы приведете пример, поскольку документация по Doctrine не очень помогает.
Спасибо.
Редактировать: пользователи, здания и отели являются просто символическими именами, поэтому они могут иметь несколько адресов, иначе здания и отели будут иметь только один адрес.
Редактировать 2 : Я думаю, что не смогу прояснить ситуацию, когда я говорю о наследовании таблиц классов. Я имею в виду, что для класса сущностей столбец Discriminator имеет значение
/**
* ...
*
* @DiscriminatorColumn(name="classname", type="string")
* @DiscriminatorMap({"Entities\users" = "Entities\users",
* "Entities\buildings" = "Entities\buildings"}) ... etc
*/
Каждый подкласс связан с parent (Entity) с отношением внешнего ключа как "id". Но, конечно, доктрина создает эту связь уже для меня.