2013-03-18 18 views
1

我正在使用Symfony 1.4和Propel 1.6。起初我被各種不正當的多元化名稱混淆了。如何讓Propel模型生成器正確複數名詞?

例如,某些表關係就像CommerceItemss,這很容易在我的schema.yml中找到,我指定了複數而不是單數表名。

我糾正了這個問題之後,我仍然在自動生成的類中留下了更多類型的錯誤。也就是說,我有一張名爲「匹配」的表格,Propel是對比賽的複數。

例如,線,如:

 if (null === $this->matchsScheduledForDeletion) { 
... 
      $this->matchsScheduledForDeletion = clone $this->collMatchs; 

所以我留下的問題,「如何讓行走正常複數化」?

回答

2

該解決方案中的Propel ORM文檔被深埋:

http://propelorm.org/reference/buildtime-configuration.html

也就是說,編輯default.properties:

./plugins/sfPropelORMPlugin/lib/vendor/propel/generator/default.properties 
./plugins/propel/generator/default.properties 

查找這行:

propel.builder.pluralizer.class = builder.util.DefaultEnglishPluralizer 

替換爲:

propel.builder.pluralizer.class = builder.util.StandardEnglishPluralizer 

它正確處理Match-> Matchs問題(並且我認爲還會處理Category-> Categories等),所以如果您有類似的問題,這可能是解決方案。

+0

很棒的發現!你應該接受你的答案,以便尋找這個問題的人可以看到你的問題有一個解決方案。 – jakerella 2013-03-18 22:00:01

+0

謝謝雅克雷拉,我顯然可以「在2天內接受你自己的答案」。 :) – user1214836 2013-03-18 22:43:03