【问题标题】:Generate php entities from orm.xml Doctrine从 orm.xml Doctrine 生成 php 实体
【发布时间】:2020-12-31 09:46:10
【问题描述】:

您好,我在 Symfony 5 上,我想生成 php 实体并从 orm.xml 文件更新方案。

我认为它以前适用于教条:generate:entities 命令。

有什么解决办法吗?提前致谢

【问题讨论】:

  • 根据Doctrine docs,Doctrine 本身仍然支持从数据库生成实体。如果您真的想这样做,那么您可以尝试一下。你需要设置几个 Doctrine 配置文件并运行 vendor/bin/doctrine。该链接还解释了一些限制。

标签: orm doctrine-orm symfony5 xmlmapper


【解决方案1】:

删除了命令doctrine:generate:entities。 Doctrine ORM 团队不鼓励从现有模式创建实体,因此在 ORM 中弃用了该功能。

使用MakerBundle,您可以创建实体,但据我所知,它不会从架构中创建它们,因此您必须手动创建每个实体,如果您只想生成它们,这无疑会很烦人无论如何基于现有的架构。或者,您可以创建一个新的“旧版”Symfony 应用程序(例如,基于 3.4 版,因为它应该仍然有命令)create the entities from the schema as described in the docs,然后将生成的实体复制到您的项目中。您可能还需要搜索和替换 AppBundle\Entity -> App\Entity

【讨论】:

  • 谢谢,维护模型太难了。我不明白为什么 symfony 弃用它并且没有提供新功能。
  • 有很多原因。文档中说明了一些导致输出不完整的内容:“Doctrine 能够根据字段、索引和外键约束转换大约 70-80% 的必要映射信息。Doctrine 无法发现反向关联,继承类型、外键作为主键的实体或关联的语义操作,例如级联或生命周期事件。”
猜你喜欢
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-26
相关资源
最近更新 更多