sfGuardUserとプロファイルテーブルを関連づける

symfony 1.1を使っていた時に、sfGuardPluginについてのエントリーを書いた。sfGuardUserテーブルにはログインID、パスワードくらいしか情報が無くて、本名やメールアドレスなどのフィールドは別テーブルを作って1:1のリレーションをさせなければいけないという内容。

symfony 1.4でsfDoctrineGuardPluginでも基本コンセプトは一緒なんだけど、このページ(英語)に従ってやったら非常に簡単にできた。概略は以下の通り。

  • schema.ymlにプロファイルテーブル(Profile)を追加し、sfGuardUserと関連づける
  • sfGuardUserのfixtureを修正
  • symfony doctrine:buildでテーブル、モデル、フォームを作成
  • sfGuardUserAdminForm.class.phpを修正し、プロファイルのフォームも読み込む
  • generator.ymlを少し修正

一点注意。多分、schema.ymlのsfGuardUserとProfileの外部キーの所で、onDelete: CASCADE が必要な気がする。

※その他、sfGuardPlugin関係のtipsをまとめたページがあった。というかこっちのページを先に見つけた。そこで、2つのテーブル(sfGuardUserとsfGuardUserProfile)を関連づける方法は書いてあったけど、1つの画面で編集できるようにする方法は載ってなかった。

■環境

symfony 1.4.3

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です