Bonjour à tous,
Je suis actuellement sur une problématique de génération de schéma / formulaire / admin generator dont je n'arrive pas à me sortir.
L'idée est d'avoir une classe Parent, deux classes Fils1 et Fils2, la classe parent étant relié à une table ProprieteParent sous formes 1-n ( un parent à une ou plusieurs propriétés ), et les classes Fils1 et Fils2 définissant des champs supplémentaires et des relations 1-n ou n-m supplémentaires (ouf)
Voici l'idée du schéma:
Je ne détaille pas les relations des fils, elles peuvent être de toute nature (1-n, n-1, n-m).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Parent: columns: name: {type: string } relations: ProprieteParent : { local: id, foreign: parent_id, type: many } ProprieteParent: columns: parent_id: {type: integer } key: {type: integer } value: {type: string } Fils1: inheritance: type: column_aggregation extends: Parent columns: other1: {type: string } Fils2: inheritance: type: column_aggregation extends: Parent columns: other2: {type: string }
Déjà, sans vouloir cracher dans la soupe de Doctrine qui jusqu'ici m'avait servit fidèlement, les modèles d'héritage sont vraiment trop simpliste ou pas assez paramétrable.
J'aurais préféré ici passer par de l'héritage "concrete", mais la relation 1-n sur la table Parent me l'interdit, car cette table ne sera jamais remplis, donc pas de match d'ID possible entre les deux tables.
Quoiqu'il en soit, ce schéma fonctionne, mais mon problème est que la génération automatique du schéma me créé un formulaire Parent qui contient tout les champs des tables Fils1 et Fils2, et que ainsi, quand j'affiche le formulaire du Fils1 ou Fils2, il contient tout les champs de Parent+Fils1+Fils2.
Y aurait'il un point qui m'aurait échapper ou faut il que je redéfinisse dans chacun de mes forms fils la liste des champs à réellement afficher ?
Ce behavior n'est il pas justement censé répondre à cette attente en stockant les bons attributs et méthodes dans les classes fils et ne pas tout bourrés dans la classe parente sans distinction ?
Cela revient à créer une table qui contiendrait elle-même tout les champs, cette héritage me semble vraiment très pauvre et cela m'étonne
Merci d'avance![]()
Partager