【问题标题】:Doctrine ORM JOINS教义 ORM JOINS
【发布时间】:2009-12-01 17:43:01
【问题描述】:

我有几个简单的类,都扩展了 Doctrine_Record。

现在我想用 Inner Join 做一个稍微复杂一点的查询,而不仅仅是提取表数据。

我正在使用 DQL,这是否需要我手动定义 2 个表之间的关系? 我应该定义这个关系类还是更好地更新 schema.yml 并以某种方式重新生成类代码?

如果没有这种明确的关系准备,就不可能进行 DQL 连接,对吧?

【问题讨论】:

    标签: php zend-framework orm doctrine


    【解决方案1】:

    您可以将关系添加到您的 .yaml 文件中,然后以这种方式重新生成您的类。 Here's Doctrine 关于 Yaml 文件关系的文档。

    您需要重新生成数据库,以便 Doctrine 可以根据新关系添加正确的外键约束。使用command line Doctrine command 相对简单,并且假设您不关心丢失数据。如果您确实关心丢失数据,则应该使用 Doctrine 为您管理迁移,但这超出了您的问题范围。您可以查看 A Frankel 对 this question 的回答,了解有关迁移的更多信息。

    【讨论】:

      【解决方案2】:

      我会重新生成类代码。我发现使用模式或数据库作为权威来源,然后重新生成和/或使用迁移总是好的做法。它更容易以这种方式维护事物。 Propel 和 Doctrine 也是如此。

      【讨论】:

        猜你喜欢
        • 2011-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-19
        • 1970-01-01
        • 2015-11-06
        • 2012-07-05
        • 1970-01-01
        相关资源
        最近更新 更多