3

sfDoctrineGuardPluginSymfony アプリケーションでユーザー、グループ、および認証を管理するために使用しています。

sfGuardUserモデルにアバターを追加したいと思います。どうやってやるの?最善のアプローチは何ですか?インターネットでいくつかの方法を見てきましたが、コードを台無しにしたくありません。

ありがとう!

4

2 に答える 2

2

2つの方法があります。

  • sfGuardUserモデルの拡張
  • プロファイルモデルを1:1で作成する

2つ目は、ユーザーモデル内に多くの情報を含めることを計画している場合に特に推奨されます。ただし、追加するアバターフィールドしかない場合は、sfGuardUserを拡張する方が便利です。

これを行うには、新しいsfGuardUser.schema.ymlを/config/フォルダー内に配置します。プラグインの代わりに使用されます。

「プロファイル」を作成するために特に知っておくべきことはありません。

Profile:
  tableName:                   profile
  columns:
    sf_guard_user_id:          integer
    firstname:                 varchar(100)
    phone:                     varchar(15)
  relations:
    sfGuardUser:               { class: sfGuardUser, onDelete: CASCADE, local: sf_guard_user_id, foreign: id, foreignType: one }
于 2011-07-04T13:57:00.297 に答える
2

私の推奨するアプローチは、データベースの変更を必要としません:

  • sfWidgetFormInputFileEditableにとを追加sfValidatorFilesfGuardUserFormます。必要に応じてウィジェットとバリデーターを構成します (削除の許可、画像の種類、サイズなど)。
  • sfGuardUserユーザーの不変プロパティに基づいて一意のパスを生成するメソッドを追加します (ユーザー ID のハッシュなど)。
  • このメソッドを使用して、画像をレンダリングし、ウィジェットとバリデーターのアップロード パスをフォームに設定します。
于 2011-07-04T17:40:42.727 に答える