symfony 1.4管理生成器未设置字段

时间:2011-01-12 15:22:51

标签: php symfony1 admin-generator

我使用了“doctrine:generate-admin”任务。一切正常,但我想使用generator.yml文件来取消设置某些表单字段,而不是在Form类本身中取消它们。像“updated_at”这样的东西我只需要在对象更新时保存,但我不希望它们显示在任何表单上,因此我不会得到任何表单验证错误。

这可能吗?我在生成器的参考页面上找不到任何可以让我这样做的东西,字段配置似乎只允许更改标签/凭证等。

3 个答案:

答案 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']);
}