Symfony2のFOSUserBundleで、fos_user_registration(登録フォーム)にオリジナルのフォーム及びそこから入力された情報を格納するORM上のカラムを生成したい
Symfony 2.6と、FOSUserBundleを使い、ユーザー登録が必要なサイトを作ろうとしています。
デフォルトで用意されているフィールド以外に、String型のカスタムフィールドを持った上でカスタムバリデーションを設定し、指定のDB上のカラムへとORM経由で入力したいと考えました。
https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_forms.md
上記、FOSUserBundleの公式ドキュメントに書いてある通り、src/Acme/UserBundle/Entity/User.php で FOS\UserBundle\Model\User をオーバーライドする方法でこの機能を実装しようと試みました。
結果として、フォームとバリデーションに関しては正常に動作するようになりました。
しかし、そこから入力された値が入るはずのカラムが生成されません。
上記公式ドキュメントの指示通りにString型のカスタムフィールドを実装した後、このサイトを参考に
php app/console doctrine:generate:entities Acme
[以下出力]
Generating entities for namespace "Acme"
backing up User.php to User.php~
generating Acme\UserBundle\Entity\User
でアクセサを作成し、
php console doctrine:schema:update --force
でスキーマをアップデートし、この時点でカスタムフィールドを格納するカラムがDB上に生成されるはずでした。
しかし、schema:updateでは以下のメッセージが出力されるのみで、カラムについても追加はされておりませんでした。
Nothing to update - your database is already in sync with the current entity metadata.
結果として、今もバリデーションのみうまく動作しているフォームが/register/にあるのみで、そこに値を入れても保存されず素通りしてしまいます。
この場合、どうすればカスタムフィールドの値が保存されるようになりますでしょうか。