如何让Propel模型生成器正确复数名词?

时间:2013-03-18 21:26:02

标签: php symfony-1.4 propel

我正在使用Symfony 1.4和Propel 1.6。我最初被使用不正确的多元化的各种类名混淆。

例如,一些表关系就像CommerceItemss,它很容易在我的schema.yml中找到,我在其中指定了复数而不是单数表名。

在我纠正之后,我仍然在自动生成的类中留下了另外一种类型的错误。也就是说,我有一张名为“匹配”的表,Propel正在将其复制到Matchs。

例如,行如下:

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

所以我留下了“如何让Propel正确复数化”的问题?

1 个答案:

答案 0 :(得分: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->匹配正确的问题(我认为也会处理Category-> Categories等),所以如果你有类似的问题,这可能是解决方案。