我正在尝试自定义sfGuardUser模块的形式。安装sfGuardDoctrinePlugin后,我按照Symfony的级联配置约定创建了以下结构:
apps/backend/modules/sfGuardUser
apps/backend/modules/sfGuardUser/config
apps/backend/modules/sfGuardUser/config/generator.yml
在generator.yml
文件中,我尝试按照建议覆盖默认插件设置
this related question和post 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,但似乎核心开发人员没有处理它。这张票包含了一个针对那些遇到像我这样的问题的补丁。
答案 0 :(得分:2)
不幸的是,重写约定并不像插件'generator.yml那样有效。最简单的方法是配置插件的generator.yml文件,这就是我所做的。
您也可以将插件的generator.yml移动(不复制)到您的app / module。这个帖子还有一个有趣的解决方案:http://oldforum.symfony-project.org/index.php/m/43279/