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”表的主要内容,如果未能解决你的问题,请参考以下文章
Symfony2/Doctrine:如何从实体类中持久化一个实体?