我使用了“doctrine:generate-admin”任务。一切正常,但我想使用generator.yml文件来取消设置某些表单字段,而不是在Form类本身中取消它们。像“updated_at”这样的东西我只需要在对象更新时保存,但我不希望它们显示在任何表单上,因此我不会得到任何表单验证错误。
这可能吗?我在生成器的参考页面上找不到任何可以让我这样做的东西,字段配置似乎只允许更改标签/凭证等。
答案 0 :(得分:7)
您只需选择要显示的字段:
config:
form:
display:
Content: [title, body, author]
Admin: [is_published, expires_at]
您在参考页面上找不到它很奇怪。在这里:http://www.symfony-project.org/reference/1_4/en/06-Admin-Generator(导航到表单 - >显示)。
编辑:
Admin生成器使用sfModelGeneratorConfiguration :: getFormFields()方法来检索要呈现的字段列表。如果您不指定'display'选项,它只需要所有字段。
是渲染所有字段还是只显示其中的一些字段?如果它晚于你可能在表单中有重载的东西(例如configure()方法)。
答案 1 :(得分:2)
试试这个:
config:
list:
hide: [created_at, updated_at]
http://www.symfony-project.org/reference/1_4/en/06-Admin-Generator#chapter_06_sub_hide
答案 2 :(得分:1)
除了隐藏admin模块的config / generator.yml中的字段之外,如上所述,您应该在相关表单中取消设置它们。因此,如果要隐藏Timestampable模型的created_at和updated_at字段,请将lib / form / doctrine / ModelForm.class.php中的configure()方法更改为
public function configure()
{
unset($this['created_at'],$this['updated_at']);
}