3

sfDoctrineGuardPlugin用来管理我的 Symfony 应用程序中的用户、组和身份验证。

现在我想为sfGuardUser模型添加一个头像。我怎样才能做到这一点?最好的方法是什么?我在网上看到过几种方法,但我不想把我的代码弄乱。

谢谢!

4

2 回答 2

2

有两种方法。

  • 扩展 sfGuardUser 模型
  • 创建轮廓模型 1:1

如果您计划在用户模型中包含大量信息,则最推荐使用第二个。但是如果你只需要添加头像字段,扩展 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

我首选的方法不需要更改数据库:

  • 添加sfWidgetFormInputFileEditablesfValidatorFilesfGuardUserForm。根据您的需要配置小部件和验证器(删除允许、图像类型、大小等)
  • 添加一个sfGuardUser基于用户的不可变属性生成唯一路径的方法(例如散列用户ID)。
  • 使用此方法来呈现图像并为表单中的小部件和验证器设置上传路径。
于 2011-07-04T17:40:42.727 回答