将头像字段添加到sfDoctrineGuard插件的sfGuardUser模型中

时间:2011-07-04 13:44:52

标签: symfony1 custom-attributes extend sfdoctrineguard

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

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

谢谢!

2 个答案:

答案 0 :(得分: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 }

答案 1 :(得分:2)

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

  • sfWidgetFormInputFileEditablesfValidatorFile添加到sfGuardUserForm。根据需要配置小部件和验证器(删除允许的,图像类型,大小等)
  • sfGuardUser添加一个方法,该方法根据用户的不可变属性生成唯一路径(例如,对用户ID进行哈希处理)。
  • 使用此方法渲染图像并在窗体中设置窗口小部件和验证器的上传路径。