【发布时间】:2014-03-27 22:53:29
【问题描述】:
我对此的研究发现了多种主题化 Symfony 2 表单集合的方法,但到目前为止还没有一种方法可以让您区分多个嵌套表单的 form_rows,以使它们以不同的方式显示。
我有一个 3 层嵌套表单,由顶部 Main 组成,其中包含 Collection 中的多个(DB 支持的)Section,每个 Section 包含 Collection 中的几个(DB 支持的)问题。我想使用 DIV 来控制部分的布局,但我想使用 TABLE 来控制每组问题的布局。
<div id="main">
<div id="section1">
<table>
<tr>Question 1</tr>
<tr>Question 2</tr>
</table>
</div>
<div id="section2">
<table>
<tr>Question 3</tr>
<tr>Question 4</tr>
</table>
</div>
</div>
我知道,对于一个完整的表单,我可以如何更改 form_row 函数用于呈现行的模板片段,但这里我需要至少两种不同类型的行。我不认为您可以使用两个不同的模板片段制作自己的 form_row 函数,该函数有两种工作方式。
如何渲染一个级别的字段与另一个级别完全不同?
【问题讨论】:
-
你尝试过使用 CSS 样式吗?使用
:first或:nth-child(2)选择器,您可以将规则应用于 2 个部分。 -
您可能仍会使用主题。在呈现嵌套集合的部分中,您只需要检查当前元素的深度。我的猜测是对当前元素的父元素进行递归检查,如果它没有父元素,那么你在顶层,如果它有 1,那么你在第二层,2 个父元素你在第三层,以此类推。
-
@n.1 谢谢,我同意 CSS 可能是一种方法,但如果可能的话,我更喜欢使用 Symfony 主题(就像我在这个领域的大多数其他任务一样)
-
@Chausser 听起来不错,我认为它可以在这里工作。我将如何在树枝块中进行父检查,你能举个例子吗?
-
让我做一些测试,然后回复你。