Propel 2.0 禁用或修改复数

Propel 2.0 disable or modify pluralization

使用 Propel ORM 2.0 Propel\Runtime\Collection\ObjectCollection->toJSON() 返回一个 json 字符串,其中第一个元素的键是模型 php 名称的复数形式。

问题是我正在处理一个约定已经使用复数的现有项目。因此,在模型 "Users" 的情况下,第一个元素作为 "Userss" 返回(带有额外的 's')。

例如,这是返回内容的第一位:

"{"Userss":[{"Id":"123",...}]}"

我已经尝试按照文档中的描述修改 propel.ext 文件中的 propel.generator.objectModel.pluralizerClass (http://propelorm.org/documentation/reference/configuration-file.html) 这似乎对生成的配置没有任何影响,也没有它会改变行为吗?

我已经中断了 StandardEnglishPluralizer 代码中的代码,无论在配置中设置了什么,StandardEnglishPluralizer 总是被使用。

有没有什么方法可以禁用复数或创建一个不复数的复数并使用它?

使用 Propel2,您可以创建和使用您自己的复数形式,如果您愿意,它可以使所有复数形式的方法都显示为单数形式。但是,这会导致歧义。例如,如果您有一个带有名为 getUsers 的方法的模型,您将不知道(没有附加信息)该方法 returns 是集合还是单个实体。

但是,解决此问题的简单方法是简单地将 table 元素的 phpName 属性设置为 "User",以便 "Users" table 在您的 [=16] =].