Dans mon application, j'ai besoin d'interroger une table dans une base de données externe, qui est liée à ma base de données par défaut par une relation plusieurs à plusieurs. Ma table intermédiaire est située dans ma base de données par défaut. Pour ce faire, j'ai modifié mon database.yml pour inclure la base de données externe. J'ai ensuite ajouté à mon schéma.yml à la fois la table intermédiaire (message_news_rel, situé dans ma base de données par défaut), et la table de la source externe (news).Symfony Relation plusieurs-à-plusieurs avec base de données externe
Voilà comment je spécifié les relations:
MessageNews:
connection: uda_iPoste
tableName: message_news_rel
columns:
message_id:
type: integer(10)
primary: true
news_id:
type: integer(10)
primary: true
relations:
Message:
local: message_id
foreign: id
foreignAlias: MessageNewses
News:
local: news_id
foreign: id
foreignAlias: MessageNewses
News:
...
relations:
Messages:
class: Message
foreignAlias: Newses
refClass: MessageNews
local: news_id
foreign: message_id
Message:
...
relations:
Newses:
class: News
foreignAlias: Messages
refClass: MessageNews
local: message_id
foreign: news_id
Quand j'essayer d'utiliser le modèle dans mon application, je reçois cette erreur:
Base table or view not found: 1146 Table 'uda_web_dev.message_news_rel' doesn't exist
... sans doute en référence à cette partie de la requête:
FROM news n LEFT JOIN message_news_rel
Ceci me laisse supposer que Symfony n'a pas changé la connexion de ma base de données par défaut à ma base de données externe lors de la tentative de créer la relation.
S'il vous plaît laissez-moi savoir si j'ai omis des détails importants.
Y a-t-il un correctif connu pour ce problème?
Je suis à peu près certain que les relations ne peuvent pas être réparties sur les connexions parce que ... Vous pouvez ajouter le tag 'Doctrine' à ceci et ce n'est pas vraiment un problème de symfony mais un problème de Doctrine. – prodigitalson
@prodigitalson Merci. Je l'ajoute en ce moment. –