2009-12-01 42 views
0

我有幾個簡單的類,都擴展Doctrine_Record。主義ORM連接

現在我想用Inner Join做一個稍微複雜的查詢,而不僅僅是表數據提取。

我正在使用DQL,這是否迫使我手動定義2個表之間的關係? 我應該定義這個關係類還是我更好地更新schema.yml並以某種方式重新生成類代碼?

沒有這種明確的關係準備,沒有DQL連接是可能的,對嗎?

回答

1

您可以將關係添加到.yaml文件,然後以這種方式重新生成您的類。關於Yaml文件關係的學說文件。

您將需要重新生成您的數據庫,以便Doctrine可以基於新的關係添加正確的外鍵約束。使用command line Doctrine command這是相對簡單的,並假定您不關心丟失數據。如果你關心丟失數據,你應該使用Doctrine來管理你的遷移,但這超出了你的問題的範圍。您可以通過查看A Frankel對this question的回答找到更多關於遷移的信息。

1

我會重新生成類代碼。我發現它總是很好的做法,可以使用schema或db作爲權威來源,然後重新生成和/或使用遷移。 IT更容易以這種方式維護事情。 Propel和Doctrine一樣。