sfDoctrineGuardPlugin与sfDoctrineApplyPlugin的关系(删除并创建用户)

时间:2011-05-24 04:54:20

标签: symfony-1.4 sfdoctrineguard sfguard symfony-plugins

我使用symfony 1.4.11。我使用sfDoctrineGuardPlugin和sfDoctrineApplyPlugin.All工作正常,但是...在我的后端我有用户列表,我可以管理用户。当我从后端创建新用户时,他的个人资料只在 sf_guard_user表中创建 ,或者当我从后端删除用户时,它仅从 sf_guard_user表删除了他的个人资料,但是它没有从 sf_guard_user_profile表中删除他的个人资料...所以如何修复它?也许我在两个插件的配置上都出了问题?谢谢!

sfGuardUserProfile:
  connection: doctrine
  tableName: sf_guard_user_profile
  columns:
    id:            { type: integer(4), primary: true, autoincrement: true }
    user_id:       { type: integer(4), notnull: true , primary: false }
    salutation:    { type: string(10), notnull: true }
    first_name:    { type: string(30), notnull: true }
    last_name:     { type: string(30), notnull: true }
    country:       { type: string(255), notnull: true }
    postcode:      { type: string(10) , notnull: true }
    city:          { type: string(255), notnull: true }
    address:       { type: string()   , notnull: true }
    phone:         { type: string(50) }
    email:         { type: string(255), notnull: true }
    validate:      { type: string(17) }
    banned:        { type: boolean, default: 0 }
    payed_until:   { type: datetime, notnull: true}
  relations:
    User:
      class: sfGuardUser
      foreign: id
      local: user_id
      type: one
      onDelete: cascade
      foreignType: one
      foreignAlias: Profile

2 个答案:

答案 0 :(得分:1)

只需将我的数据库从MyISAM更改为INNODB,一切正常!

答案 1 :(得分:0)

关于创建新用户 - 我不确定两个插件中是否都有这样的功能。 (至少我不知道)。

关于从 sf_guard_user_profile 表中删除用户和相关数据 - 我认为关系定义很可能存在一些问题。在安装部分再次检查 sfDoctrineApplyPlugin 自述文件,其中定义了 sf_guard_user_profile 表。您需要为User关系设置 onDelete:cascade

最后检查是否生成了适当的sql并将其应用于数据库模式。

问候。