sfGuardプラグインのユーザーフォームにカスタムフィールドを追加しようとしています。
データベースに列を作成し、フィールドのウィジェットスキーマを追加しました。フォームに正しく表示され、テキストを追加して送信すると、更新が成功したことが示されます。ただし、フィールドに挿入されたデータはデータベースに入力されません。
新しいフィールドを認識していないため、sfGuardのモデルを更新する必要があると考えています。試し$ ./symfony doctrine:build-model
ましたが、sfGuardプラグインのクラスが更新されていないようです。
これをsfGuardUserAdminClassに追加しました:
$this->widgetSchema['department_title'] = new sfWidgetFormInputText();
$this->validatorSchema['department_title'] = new sfValidatorString(array());
フォームフィールドを表示して送信できますが、データをキャッチしてデータベースに挿入しているだけではありません。
アップデート
MyUserオブジェクトを使用してスキーマを更新し、diffを移行して、モデルを構築しました。$this->embedRelation('Profile');
sfGuardUserAdminForm.classに追加しました。このエラーが発生します
"Catchable fatal error: Argument 1 passed to sfUser::__construct() must be an instance of sfEventDispatcher, instance of MyUserTable given, called in /Users/careyestes/Sites/sva/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Table.php on line 301 and defined in /Users/careyestes/Sites/sva/lib/vendor/symfony/lib/user/sfUser.class.php on line 46 Fatal error: Call to a member function evictAll() on a non-object in /Users/careyestes/Sites/sva/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php on line 1239"