1

Symfony 1.4 と Propel 1.6 を使用しています。最初は、不適切な複数形を使用するさまざまなクラス名に困惑しました。

たとえば、一部のテーブル リレーションは CommerceItemss のようなもので、単数形ではなく複数形のテーブル名を指定した schema.yml で簡単に追跡できました。

それを修正した後も、自動生成されたクラスにもう 1 種類のエラーが残っていました。つまり、Propel が Matchs に複数形化した "Match" という名前のテーブルがありました。

たとえば、次のような行です。

        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 に答える