1

我正在使用 Symfony 1.4 和 Propel 1.6。起初,我对使用不正确复数的各种类名感到困惑。

例如,一些表关系是诸如 CommerceItemss 之类的东西,在我的 schema.yml 中很容易追踪到,我在其中指定了复数而不是单数表名。

在我更正之后,我仍然在自动生成的类中留下了另一种类型的错误。也就是说,我有一个名为“Match”的表格,Propel 将其复数为 Matchs。

例如,像这样的行:

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

所以我剩下的问题是“如何让 Propel 正确地复数”?

4

1 回答 1

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 等),因此如果您遇到类似问题,这可能是解决方案。

于 2013-03-18T21:26:01.880 回答