我正在使用Symfony 1.4和Propel 1.6。我最初被使用不正确的多元化的各种类名混淆。
例如,一些表关系就像CommerceItemss,它很容易在我的schema.yml中找到,我在其中指定了复数而不是单数表名。
在我纠正之后,我仍然在自动生成的类中留下了另外一种类型的错误。也就是说,我有一张名为“匹配”的表,Propel正在将其复制到Matchs。
例如,行如下:
if (null === $this->matchsScheduledForDeletion) {
...
$this->matchsScheduledForDeletion = clone $this->collMatchs;
所以我留下了“如何让Propel正确复数化”的问题?
答案 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等),所以如果你有类似的问题,这可能是解决方案。