Это кажется простым, но я не могу получить это право:Many-To-One с несколькими целевыми субъектами
Есть три сущности: Fruit
, Vegetable
и Snack
. Закуска имеет поля id
, time
и food
. Пища является ссылкой на либо один плод или один овощ. Так что это в основном отношения «много-к-одному»/«один ко многим», поскольку одна закуска всегда будет содержать только одну пищу. Но существует более одного целевого объекта.
Как мне отобразить это в Doctrine2?
Простое решение, которое я использовал бы, прежде чем зная, что Doctrine2 будет использовать два поля: food_type
и food_id
. Но как я могу установить соединение с пищевым типом в правильную сущность? Я думал о массиве JoinColumns, но не могу найти способ подключения правильной сущности. Я также посмотрел на сопоставленные суперклассы, потому что есть DiscriminatorColumn, но это также кажется неправильным подходом. Если я получу это правильно, суперкласс не может быть самой сущностью - поэтому я не могу создать пищевой объект.
Любая помощь приветствуется. Я уверен, что мне здесь что-то не хватает.
Вы посмотрели [реализация доктрины наследования одной таблицы] (http://docs.doctrine-project.org/en/2.0.x/reference/inheritance-mapping.html#single-table-inheritance)? –