Selon Documentation de Doctrine , il existe 3 façons d'étendre une classe :
- Superclasse mappée :la classe parent n'est pas une entité.
- Héritage de table unique :un seul grand tableau pour toutes les données (y compris les champs supplémentaires).
- Héritage de table de classe :une table principale, plus une table supplémentaire pour chaque entité avec des champs supplémentaires.
Vous voulez soit l'héritage de table unique, soit l'héritage de table de classe.
La superclasse mappée ne fonctionnera pas car vous voulez la classe parente Post
être une entité autonome. Dans ce cas, le Post
class, vous ne devez pas le définir comme abstract
.
Sauf si vous avez une grande quantité de champs supplémentaires, vous devriez probablement utiliser l'single table inheritance
.