2011-01-20 5 views
1

symfony 1.4プロジェクトでsfDoctrineGuardPluginを使用しようとしています。このプラグインには、関連するすべてのテーブルを定義するために使用されるschema.ymlファイルが含まれています。テーブル名は、sf_guard_user、sf_guard_user_group、sf_guard_user_permissionなどの形式をとります。これらのテーブルの名前はusers、user_groups、user_permissionsなどとします。プラグインコードを直接編集することなくこれを行う方法はありますか?SymfonyプラグインsfDoctrineGuardPluginでカスタムテーブル名を使用していますか?

答えて

5

オーバーライドそれらのものを:

sfGuardGroup: 
    tableName: groups 

sfGuardPermission: 
    tableName: permissions 

sfGuardGroupPermission: 
    tableName: groups_permissions 

また、私は別のファイルにそれらを移動することを好むだろう、sfDoctinePlugin-schema.ymlを言います。

希望に役立ちます。

+0

これは、プラグインの設定をオーバーライドする簡単な実装でした。ありがとうございました! –

+0

sfDoctrineGuardPluginに関連する別の質問が掲載されました。 http://stackoverflow.com/questions/4771313/auto-generate-field-value-on-sfguarduser-when-registering –

+0

こんにちは@Matt、そこに質問を投稿しました。 – Darmen

1

これは良い習慣ではありません。私はそれをやめることをお勧めします。

これで(太字で、haha)、あなたのプロジェクトレベルのスキーマに含まれているスキーマをコピーし、各レコード定義にtableNameキーを追加することができます。私は、この方法でスキーマを変更することが一般的に話すことを知っています。なぜなら、完全に吹き飛ばされたプロファイルクラスを使用する代わりに、余分な列をsfGuardUserに追加することが定期的に行われるからです。

DBをビルドしたら、テーブル名が表示されます。実際のプラグインコードに、モデル名で定義されたエイリアスを使用するのではなく、誰かがテーブル名をハードコードしている場合があります。このような状況があることはわかりませんが、プロジェクトを進める前に十分にテストする必要があります。プロジェクトのスキーマファイルで

+0

なぜそれは良い方法とは考えられないのですか?実際に何が表現されているかを反映するように名前を付けるのではなく(変更する可能性はほとんどありません)、実装後にテーブルに名前を付けるのは悪い習慣ではありませんか? –

+0

おそらく... IMO ...アクティブレコードベースのORMを使用する場合、特に、ある種のビルドシステムを使用する場合は、テーブルがモデル名に直接関連することが重要です。一目。テーブルがモデルに直接結びついているので、テーブル名にとらわれないものをこのケースでは悪い習慣にしているように思えます。モデルの実装を切り替えると、dbスキーマとそれに関連するすべてのモデルを移行する必要がありますので、テーブルの名前を変更することが私の心配ではありません。 – prodigitalson

関連する問題