Je travaille avec un schéma de base de données existante, et en essayant d'installer deux modèles Doctrine avec plusieurs à plusieurs, as described in this documentDoctrine 1.2 colonne Conventions de nommage pour beaucoup de nombreuses relations
Lors de la création des tables à partir de zéro, j'ai pas de problème pour que cela fonctionne. Toutefois, les tables de jointure existantes utilisent une convention de dénomination différente de celle décrite dans le document Doctrine. Plus précisément
Table 1
--------------------------------------------------
table_1_id
....other columns....
Table 2
--------------------------------------------------
table_2_id
....other columns....
Join Table
--------------------------------------------------
fktable1_id
fktable_2_id
En gros, les développeurs précédents préfacé toutes les clés étrangères avec un fk
.
A partir des exemples que je l'ai vu et quelques brèves expériences avec le code, il semble que la doctrine 1.2 exige que la table de jointure utiliser les mêmes noms de colonnes que les tables, il est joindre à
Est-ce que mon hypothèse est correcte?
Si oui, la situation a-t-elle changé dans Doctrine 2?
Si les réponses à une ou l'autre de ce qui précède sont vraies, comment configurer les modèles vous afin que « aligner » toutes les colonnes
J'ai généré mes modèles à partir de la base de données, mais les relations n'ont pas été prises en compte. Existe-t-il une option spéciale que vous devez transmettre à la méthode generateModelsFromDb pour dire à la doctrine de faire sa meilleure estimation des relations? –
Non, ça devrait aller quand vous le générez. Avez-vous testé les modèles générés dans votre application? – DrColossos
Ah, je pense que je vois ce que vous obtenez ici. Dans le cas contraire, aliaser les noms des colonnes de la base de données selon la doctrine voulue pour les noms de champs a fait l'affaire ($ this-> hasColumn ('fksection_id as section_id') –