将自定义字段添加到后端表单

时间:2013-07-09 09:41:22

标签: php forms symfony-1.4

我正在研究symfony 1.4项目,并尝试以后端形式添加自定义字段。目前,我的模块有一个批处理历史记录,其中包含每行的编辑和删除选项以及允许用户对其进行过滤的表单。我想添加一个自定义创建表单,我正在努力做到这一点。

  • 继续/*model_name*/new/页面会向我显示一个表单:这是我想要更改的表单。

  • 我想在此页面上显示另一个表(和模型)中元素的下拉列表。我怎么能知道当前模块的widgetSchema没有这种关系呢?

  • 我应该编辑 generator.yml 吗?当我尝试将title:添加到new:时,它似乎不会影响/new/页面(即使在缓存:清除之后)。

2 个答案:

答案 0 :(得分:0)

是的,您需要修改 generator.yml ,但是在表单行:

# apps/backend/modules/whatever/config/generator.yml
config:
  ...
  form:
    display:
      Whatever...

这里有一些例子。摘自官方文件:

http://symfony.com/legacy/doc/jobeet/1_4/en/12?orm=Doctrine#chapter_12_form_views_configuration

这样,生成器使用的表单将是您指定的表单。也许你不需要修改别的东西。

答案 1 :(得分:0)

如果在schema.yml中创建该关系会更容易。您生成的表单将能够呈现您想要的小部件。

否则,您需要做的是通过添加所需的小部件和验证器来编辑* model_name * Form类(在您的情况下为sfWidgetFormDoctrineChoice和sfValidatorDoctrineChoice)

默认情况下,generator.yml使用* model_name * Form类的形式,但我建议您在模块中创建的lib文件夹中复制此类,然后编辑此类。然后,编辑generator.yml以使用此新表单this is how you do it

另外,请确保关系表中没有多少行。否则,symfony会尝试生成一个包含很多选项的html选择标记,你需要杀死你的php甚至是webserver进程。