Forms Symfony2如何为深度集合表单嵌套中的特定集合创建特定集合小部件
我有一个更复杂的问题,我从来没有在一个表单中做过超过1个嵌套表单,只包含一个自定义集合小部件模板就可以了。(原因:我需要根据laravel和Spaghetti代码重新编写网站代码,Spaghetti结构中有大量bug和bug补丁,我正在修复一年,我决定在我心爱的Symfony上重新创建这个应用程序) 让我来写结构:Forms Symfony2如何为深度集合表单嵌套中的特定集合创建特定集合小部件,forms,symfony,Forms,Symfony,我有一个更复杂的问题,我从来没有在一个表单中做过超过1个嵌套表单,只包含一个自定义集合小部件模板就可以了。(原因:我需要根据laravel和Spaghetti代码重新编写网站代码,Spaghetti结构中有大量bug和bug补丁,我正在修复一年,我决定在我心爱的Symfony上重新创建这个应用程序) 让我来写结构: Questionnaire (short name QN for later use) - QN - |_ QN Sections -
Questionnaire (short name QN for later use)
- QN -
|_ QN Sections -
|_ QN Parts -
|_ QN Groups -
|_ QN Questions -
|_ some predefined answers
正如您所看到的,每个QN可以有部分,这些部分可以有部分,这些部分可以有组,这些组可以有问题,这些问题有一些条件字段,如如果问题类型为“A,B,C”,则这些预定义答案有另一个嵌套的集合形式
问题是,对于每个集合表单,我需要以某种方式指定一个自定义集合wiget模板,因为每个集合表单都有不同的字段布局,以及如何显示和处理它们
目前,我已经创建了一个集合小部件模板,我在QN节之前包含该模板,以设置QN节的样式,但该模板也用于他的子集合表单,这是我需要避免的
在一个完美的世界中,它应该像“prototype_template”=>“some path”一样工作,然后为每个tempalte创建javascript来添加、删除等等
下面是一个屏幕截图,其中包含一些信息,如它现在的样子:
在为每个集合表单使用这些单独模板的最后阶段,“表单生成器”应该看起来像实际的web应用程序。
如果你需要更多的信息,请让我知道,我会提供尽可能多的信息
总而言之:我需要为每个嵌套的集合表单类型指定使用不同集合表单小部件模板的方法
谢谢最后我拿到了
我使用的主要集合模板是collection_小部件块。
这很糟糕,因为它太笼统了。我已经把它重命名为“问卷调查”小部件,所以1。级别集合以主题为主题。但在headake之后,1000个表单名称的组合让我知道了如何命名2。级别集合,其块名为“\u调查问卷\u调查问卷删除\u条目\u调查问卷重新编写\u小部件”,简单地表示“\u mainFormTypeName\u FieldNameOffirstLevel集合\u条目\u FieldNameOfSecondLevelCollection\u小部件”
我只需要在正确的时间将每个模板文件放置到正确的位置
edit.html.twig
{{ form_start(form) }}
{% form_theme form "::templates/collection/questionnaire/questionnaireSection.html.twig" %}
.........
{{ form_widget(form.questionnaireSections) }}
questionnaireSection.html.twig
{% block _questionnaire_questionnaireSections_widget %}
.............
{% for rows in form %}
{% form_theme form "::templates/collection/questionnaire/questionnairePart.html.twig" %}
questionnairePart.html.twig
{% block _questionnaire_questionnaireSections_entry_questionnaireParts_widget %}
所以问题解决了,我成功地为嵌套集合设置了主题。感谢我自己和symfony docs,他们有0个单词的文档来嵌套表单主题,但他们有一些关于“条目”部分的信息。您是如何找到它的?我想我也有同样的问题:。。。。