Я использую DDD и не хочу создавать ненужную в Doctrine ассоциацию между агрегатами. Кроме того, «внешний ключ» — это первичный ключ, а не фактическая сущность, на которую ссылаются.
Есть ли способ создать отношение внешнего ключа в базе данных, используя аннотации поля внешнего ключа, без создания ассоциации на уровне доктрины приложения (используя One-to-Many, One-to-One и т. д.).






Вы можете импортировать отображение:
https://symfony.com/doc/current/doctrine/reverse_engineering.html
нравится:
php bin/console doctrine:mapping:import "App\Entity" yml --path=config/doctrine
удалите отношения из сгенерированных файлов yml и сгенерируйте сущности после:
php bin/console make:entity --regenerate App
Вы имеете в виду, что у вас есть объекты в шаблоне Наследование таблицы классов? Затем можно было бы просто определить корневой агрегат как имеющий эти свойства, а другие классы Entity расширяются от него. Doctrine позаботится об объявлении
DiscriminatorMap, поэтому вам нужны толькоInheritanceTypeиDiscriminatorColumnв корневом агрегате. Затем Doctrine также создает ваши внешние ключи (идентификатор PK корневого агрегата)