Symfony:定制sfDoctrineGuardPlugin模块

时间:2011-03-16 11:08:20

标签: symfony1 customization generator sfdoctrineguard

我正在尝试自定义sfGuardUser模块的形式。安装sfGuardDoctrinePlugin后,我按照Symfony的级联配置约定创建了以下结构:

apps/backend/modules/sfGuardUser
apps/backend/modules/sfGuardUser/config
apps/backend/modules/sfGuardUser/config/generator.yml

generator.yml文件中,我尝试按照建议覆盖默认插件设置 this related questionpost in the official blog

generator:
  class: sfDoctrineGenerator
  param:
    config:
      fields:
        first_name:
          label: Name
        last_name:
          label: Surname
        email_address:
          label: Email
        updated_at:
          label: Last update
          date_format: f
      list:
        title: People
        display: [=username, name, email_address, last_login]
        sort: [username, asc]
      filter:
        display: [username, first_name, last_name, email_address]
      edit:
        title: Edit "%%name%%"
      new:
        title: Add a new user
      form:
        display:
          "User":                   [first_name, last_name, email_address, username, password, password_again]
          "Permissions and groups": [is_active, is_super_admin, groups_list]

但是表单仍然反映默认设置。例如,它仍然显示permissions_list

此外,如果您尝试通过覆盖sfGuardUserAdminForm来取消设置窗口小部件,您会发现它也不起作用。

我怎样才能避免这种情况并迫使真正重写?我错过了什么吗?

谢谢!

更新1 我找到了一个解决方法,即为组分配一个错误值,然后使用我想要的字段设置一个新组:

"User":  [first_name, last_name, email_address, username, password, password_again]
"Permissions and groups":  false
"Status and groups":  [is_active, is_super_admin, groups_list]

更新2 这是documented bug,但似乎核心开发人员没有处理它。这张票包含了一个针对那些遇到像我这样的问题的补丁。

1 个答案:

答案 0 :(得分:2)

不幸的是,重写约定并不像插件'generator.yml那样有效。最简单的方法是配置插件的generator.yml文件,这就是我所做的。

您也可以将插件的generator.yml移动(不复制)到您的app / module。这个帖子还有一个有趣的解决方案:http://oldforum.symfony-project.org/index.php/m/43279/