2013-03-18 64 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