Symfony Doctrine 从数据库中导入“join”表

Posted

技术标签:

【中文标题】Symfony Doctrine 从数据库中导入“join”表【英文标题】:Symfony Doctrine import "join" table from database 【发布时间】:2014-06-25 11:53:02 【问题描述】:

我想将现有的表从数据库导入 Symfony 项目(将它们实现为实体)。 我使用了命令:

php app/console doctrine:mapping:import --force BundleName yml
php app/console doctrine:mapping:convert annotation ./src
php app/console doctrine:generate:entities BundleName

命令运行良好,问题是任何“加入”表(外键到位)都将丢失, 例如如果我有表 Order、Item 和 OrderItem,其中 OrderItem 包含 Order 和 Item 的映射,那么 Symfony/Doctrine 将 Order 和 Item 解析为 多对多 关系并仅为 Order 和 Item 创建实体。

问题是我如何制定原则来导入“连接”表并将其解析为与目标表相关的两个多对一关系。

【问题讨论】:

【参考方案1】:

Doctrine 将无法准确猜测这些关系。它甚至看到导入失败,因为某些表不包含主键。一对多/多对多关系由约束使用和强制执行的方式定义。

导入是一次运行的工具。之后您必须自己检查和更新映射。

【讨论】:

感谢您的意见。在我将单个值的 PK(以前是 FK 的组合)放入我的“连接”表中之后,学说将其解释为一个实体,而不仅仅是一个链接器。这就是我所需要的:)

以上是关于Symfony Doctrine 从数据库中导入“join”表的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 2 如何从另一个包中导入 LESS 文件

在 Symfony 数据库中导入 Excel 数据

使用doctrine从Symfony2中的外部数据库导入表

Symfony2/Doctrine:如何从实体类中持久化一个实体?

Symfony-Doctrine从不同数据库导入数据的最佳方式

在 symfony 中查找当前 Doctrine 数据库连接设置