如何自定义表单渲染
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.4,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
form_row ()函数或行
PHP helper方法:
1
{{form_row(form.age)}}跨度>
你也可以分别渲染字段的三个部分:
1 2 3 4 5
<<跨度类="hljs-name">div跨度>>跨度>跨度><跨度类="hljs-template-variable">{{form_label(form.age)}}跨度><跨度类="xml">{{form_errors(form.age)}}跨度><跨度类="xml">{{form_widget(form.age)}}跨度><跨度类="xml"><跨度类="hljs-name">div跨度>>跨度>跨度>
在这两种情况下,表单标签、错误和HTML小部件都是通过使用一组标配Symfony的标记来呈现的。ob娱乐下载例如,上面的两个模板都将呈现:
1 2 3 4 5 6 7
<<跨度类="hljs-name">div跨度>>跨度><跨度类="hljs-tag"><<跨度类="hljs-name">标签跨度><跨度类="hljs-attr">为跨度>=<跨度类="hljs-string">“form_age”跨度>>跨度>年龄<跨度类="hljs-tag"><跨度类="hljs-name">标签跨度>>跨度><跨度类="hljs-tag"><<跨度类="hljs-name">ul跨度>>跨度><跨度类="hljs-tag"><<跨度类="hljs-name">李跨度>>跨度>此字段为必填项<跨度类="hljs-tag"><跨度类="hljs-name">李跨度>>跨度><跨度类="hljs-tag"><跨度类="hljs-name">ul跨度>>跨度><跨度类="hljs-tag"><<跨度类="hljs-name">输入跨度><跨度类="hljs-attr">类型跨度>=<跨度类="hljs-string">“数量”跨度><跨度类="hljs-attr">id跨度>=<跨度类="hljs-string">“form_age”跨度><跨度类="hljs-attr">的名字跨度>=<跨度类="hljs-string">“形式[时代]”跨度>/>跨度><跨度类="hljs-tag"><跨度类="hljs-name">div跨度>>跨度>
为了快速原型化和测试表单,你可以用一行渲染整个表单:
1 2 3 4 5
{#显示所有字段#}跨度><跨度类="xml">{{form_widget(form)}}跨度><跨度类="xml">{#显示所有字段*和*表单开始和结束标签#}跨度><跨度类="xml">{{form(form)}}跨度>
本菜谱的其余部分将解释如何在不同级别修改表单标记的每个部分。有关表单呈现的更多信息,请参见如何控制表单的渲染.
行
PHP helper方法:
1
{{form_row(form.age)}}跨度>
你也可以分别渲染字段的三个部分:
1 2 3 4 5
<<跨度类="hljs-name">div跨度>>跨度>跨度><跨度类="hljs-template-variable">{{form_label(form.age)}}跨度><跨度类="xml">{{form_errors(form.age)}}跨度><跨度类="xml">{{form_widget(form.age)}}跨度><跨度类="xml"><跨度类="hljs-name">div跨度>>跨度>跨度>
在这两种情况下,表单标签、错误和HTML小部件都是通过使用一组标配Symfony的标记来呈现的。ob娱乐下载例如,上面的两个模板都将呈现:
1 2 3 4 5 6 7
<<跨度类="hljs-name">div跨度>>跨度><跨度类="hljs-tag"><<跨度类="hljs-name">标签跨度><跨度类="hljs-attr">为跨度>=<跨度类="hljs-string">“form_age”跨度>>跨度>年龄<跨度类="hljs-tag"><跨度类="hljs-name">标签跨度>>跨度><跨度类="hljs-tag"><<跨度类="hljs-name">ul跨度>>跨度><跨度类="hljs-tag"><<跨度类="hljs-name">李跨度>>跨度>此字段为必填项<跨度类="hljs-tag"><跨度类="hljs-name">李跨度>>跨度><跨度类="hljs-tag"><跨度类="hljs-name">ul跨度>>跨度><跨度类="hljs-tag"><<跨度类="hljs-name">输入跨度><跨度类="hljs-attr">类型跨度>=<跨度类="hljs-string">“数量”跨度><跨度类="hljs-attr">id跨度>=<跨度类="hljs-string">“form_age”跨度><跨度类="hljs-attr">的名字跨度>=<跨度类="hljs-string">“形式[时代]”跨度>/>跨度><跨度类="hljs-tag"><跨度类="hljs-name">div跨度>>跨度>
为了快速原型化和测试表单,你可以用一行渲染整个表单:
1 2 3 4 5
{#显示所有字段#}跨度><跨度类="xml">{{form_widget(form)}}跨度><跨度类="xml">{#显示所有字段*和*表单开始和结束标签#}跨度><跨度类="xml">{{form(form)}}跨度>
本菜谱的其余部分将解释如何在不同级别修改表单标记的每个部分。有关表单呈现的更多信息,请参见如何控制表单的渲染.
输入文本字段,选择
标签等。
这些片段在Twig中定义为块,在PHP中定义为模板文件。
一个主题只不过是在呈现表单时要使用的一组片段。换句话说,如果您想自定义表单呈现方式的一部分,您将导入一个主题其中包含适当的表单片段的自定义。
ob娱乐下载Symfony就有一些内置表单主题定义了渲染表单的每个部分所需的每个片段:
- form_div_layout.html.twig,将每个表单字段包装在一个
< div >
元素。李><李>form_table_layout.html.twig,将整个表单包装在一个<表>
元素中的每个表单字段< tr >
元素。李><李>bootstrap_3_layout.html.twig,将每个表单字段包装在一个< div >
元素使用适当的CSS类来应用默认值引导3 CSS框架风格。李><李>bootstrap_3_horizontal_layout.html.twig,它类似于前面的主题,但应用的CSS类是用来水平显示表单的(即标签和小部件在同一行)。李><李>bootstrap_4_layout.html.twig,与bootstrap_3_layout.html.twig
,但已更新引导4 CSS框架风格。李><李>bootstrap_4_horizontal_layout.html.twig,与bootstrap_3_horizontal_layout.html.twig
但更新了Bootstrap 4风格。李><李>foundation_5_layout.html.twig,将每个表单字段包装在一个< div >
元素使用适当的CSS类来应用默认值CSS基础框架风格。李>
3.4跨度>
Bootstrap 4表单主题是在Symfony 3.4中引入的。ob娱乐下载
谨慎跨度>
当您使用Bootstrap表单主题并手动呈现字段时,调用了form_label ()
对于复选框/单选字段不显示任何内容。由于Bootstrap内部程序,标签已经显示在form_widget ()
.
提示跨度>
阅读更多有关引导4形式主题.
在下一节中,您将学习如何通过覆盖主题的部分或全部片段来定制主题。
的小部件时整数
类型字段被呈现输入
数量
字段生成
1
{{form_widget(form.age)}}跨度>
呈现:
1
<<跨度类="hljs-name">输入跨度><跨度类="hljs-attr">类型跨度>=<跨度类="hljs-string">“数量”跨度><跨度类="hljs-attr">id跨度>=<跨度类="hljs-string">“form_age”跨度><跨度类="hljs-attr">的名字跨度>=<跨度类="hljs-string">“形式[时代]”跨度><跨度类="hljs-attr">要求跨度>=<跨度类="hljs-string">“要求”跨度><跨度类="hljs-attr">价值跨度>=<跨度类="hljs-string">“33”跨度>/>跨度>
在内部,Symfony使ob娱乐下载用integer_widget
片段来呈现字段。这是因为字段类型是整数
你在渲染它小部件
(与之相反标签
或错误
).
在Twig中,这将默认为块integer_widget
从form_div_layout.html.twig模板。
在PHP中,应该是integer_widget.html.php
文件位于FrameworkBundle /资源/视图/形式
文件夹中。
方法的默认实现integer_widget
片段是这样的:
1 2 3 4 5
{# form_div_layout.html。树枝#}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>integer_widget %}跨度><跨度类="xml">{%<跨度类="hljs-name">集跨度>跨度>类型=类型|<跨度类="hljs-keyword">默认的跨度>(数量)%}跨度><跨度类="xml">{{<跨度类="hljs-name">块跨度><跨度类="hljs-params">(“form_widget_simple”)跨度>}}跨度><跨度类="xml">{%<跨度类="hljs-name">endblock跨度>跨度>integer_widget %}跨度>
如您所见,这个片段本身呈现了另一个片段-form_widget_simple
:
1 2 3 4 5
{# form_div_layout.html。树枝#}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>form_widget_simple %}跨度><跨度类="xml">{%<跨度类="hljs-name">集跨度>跨度>类型=类型|<跨度类="hljs-keyword">默认的跨度>('文本')%}跨度><跨度类="xml"><<跨度类="hljs-name">输入跨度><跨度类="hljs-attr">类型跨度>=<跨度类="hljs-string">"跨度>跨度>跨度><跨度类="hljs-template-variable">{{type}}跨度><跨度类="xml">"跨度>跨度>跨度><跨度类="hljs-template-variable">{{<跨度类="hljs-name">块跨度><跨度类="hljs-params">(“widget_attributes”)跨度>}}跨度><跨度类="xml">{%<跨度类="hljs-name">如果跨度>跨度>值不是空%}跨度><跨度类="xml">价值跨度>=<跨度类="hljs-string">"跨度>跨度>跨度><跨度类="hljs-template-variable">{{value}}跨度><跨度类="xml">"跨度>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endif跨度>跨度>%}跨度><跨度类="xml">/>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endblock跨度>跨度>form_widget_simple %}跨度>
关键是,这些片段指示了表单每个部分的HTML输出。要自定义表单输出,只需要识别并覆盖正确的片段。一组这样的表单片段自定义称为表单“主题”。呈现表单时,可以选择要应用的表单主题。
在Twig中,主题是一个单独的模板文件,片段是这个文件中定义的块。
在PHP中,主题是一个文件夹,片段是文件夹中的单个模板文件。
< div >
元素。李><李>form_table_layout.html.twig,将整个表单包装在一个<表>
元素中的每个表单字段< tr >
元素。李><李>bootstrap_3_layout.html.twig,将每个表单字段包装在一个< div >
元素使用适当的CSS类来应用默认值引导3 CSS框架风格。李><李>bootstrap_3_horizontal_layout.html.twig,它类似于前面的主题,但应用的CSS类是用来水平显示表单的(即标签和小部件在同一行)。李><李>bootstrap_4_layout.html.twig,与bootstrap_3_layout.html.twig
,但已更新引导4 CSS框架风格。李><李>bootstrap_4_horizontal_layout.html.twig,与bootstrap_3_horizontal_layout.html.twig
但更新了Bootstrap 4风格。李><李>foundation_5_layout.html.twig,将每个表单字段包装在一个< div >
元素使用适当的CSS类来应用默认值CSS基础框架风格。李>3.4跨度>
Bootstrap 4表单主题是在Symfony 3.4中引入的。ob娱乐下载
谨慎跨度>
当您使用Bootstrap表单主题并手动呈现字段时,调用了form_label ()
对于复选框/单选字段不显示任何内容。由于Bootstrap内部程序,标签已经显示在form_widget ()
.
提示跨度>
阅读更多有关引导4形式主题.
整数
类型字段被呈现输入
数量
字段生成1
{{form_widget(form.age)}}跨度>
1
<<跨度类="hljs-name">输入跨度><跨度类="hljs-attr">类型跨度>=<跨度类="hljs-string">“数量”跨度><跨度类="hljs-attr">id跨度>=<跨度类="hljs-string">“form_age”跨度><跨度类="hljs-attr">的名字跨度>=<跨度类="hljs-string">“形式[时代]”跨度><跨度类="hljs-attr">要求跨度>=<跨度类="hljs-string">“要求”跨度><跨度类="hljs-attr">价值跨度>=<跨度类="hljs-string">“33”跨度>/>跨度>
integer_widget
片段来呈现字段。这是因为字段类型是整数
你在渲染它小部件
(与之相反标签
或错误
).integer_widget
从form_div_layout.html.twig模板。integer_widget.html.php
文件位于FrameworkBundle /资源/视图/形式
文件夹中。integer_widget
片段是这样的:1 2 3 4 5
{# form_div_layout.html。树枝#}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>integer_widget %}跨度><跨度类="xml">{%<跨度类="hljs-name">集跨度>跨度>类型=类型|<跨度类="hljs-keyword">默认的跨度>(数量)%}跨度><跨度类="xml">{{<跨度类="hljs-name">块跨度><跨度类="hljs-params">(“form_widget_simple”)跨度>}}跨度><跨度类="xml">{%<跨度类="hljs-name">endblock跨度>跨度>integer_widget %}跨度>
form_widget_simple
:1 2 3 4 5
{# form_div_layout.html。树枝#}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>form_widget_simple %}跨度><跨度类="xml">{%<跨度类="hljs-name">集跨度>跨度>类型=类型|<跨度类="hljs-keyword">默认的跨度>('文本')%}跨度><跨度类="xml"><<跨度类="hljs-name">输入跨度><跨度类="hljs-attr">类型跨度>=<跨度类="hljs-string">"跨度>跨度>跨度><跨度类="hljs-template-variable">{{type}}跨度><跨度类="xml">"跨度>跨度>跨度><跨度类="hljs-template-variable">{{<跨度类="hljs-name">块跨度><跨度类="hljs-params">(“widget_attributes”)跨度>}}跨度><跨度类="xml">{%<跨度类="hljs-name">如果跨度>跨度>值不是空%}跨度><跨度类="xml">价值跨度>=<跨度类="hljs-string">"跨度>跨度>跨度><跨度类="hljs-template-variable">{{value}}跨度><跨度类="xml">"跨度>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endif跨度>跨度>%}跨度><跨度类="xml">/>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endblock跨度>跨度>form_widget_simple %}跨度>
方法 | 优点 | 缺点 |
---|---|---|
在与表单相同的模板中道明><道明>不需要额外的模板文件道明><道明>不能在其他模板中重用道明> |
这两种方法效果相同,但在不同情况下效果更好。
form_div_layout.html.twig,粘贴到另一个模板,然后自定义。在许多情况下,可以通过在自定义时引用基块来避免这样做。
这很容易做到,但略有不同,这取决于您的表单块自定义是在与表单相同的模板中,还是在单独的模板中。
使用在你渲染表单的模板中标记:
1
{%<跨度类="hljs-name">使用跨度>跨度>“form_div_layout.html。用integer_widget作为base_integer_widget %}跨度>
现在,当积木从form_div_layout.html.twig都是进口的,integer_widget
Block被称为base_integer_widget
.这意味着当你重新定义integer_widget
块,您可以引用默认标记通过base_integer_widget
:
1 2 3 4 5
{%<跨度类="hljs-name">块跨度>跨度>integer_widget %}跨度><跨度类="xml"><<跨度类="hljs-name">div跨度><跨度类="hljs-attr">类跨度>=<跨度类="hljs-string">“integer_widget”跨度>>跨度>跨度><跨度类="hljs-template-variable">{{<跨度类="hljs-name">块跨度><跨度类="hljs-params">(“base_integer_widget”)跨度>}}跨度><跨度类="xml"><跨度类="hljs-name">div跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endblock跨度>跨度>%}跨度>
1
{%<跨度类="hljs-name">使用跨度>跨度>“form_div_layout.html。用integer_widget作为base_integer_widget %}跨度>
integer_widget
Block被称为base_integer_widget
.这意味着当你重新定义integer_widget
块,您可以引用默认标记通过base_integer_widget
:1 2 3 4 5
{%<跨度类="hljs-name">块跨度>跨度>integer_widget %}跨度><跨度类="xml"><<跨度类="hljs-name">div跨度><跨度类="hljs-attr">类跨度>=<跨度类="hljs-string">“integer_widget”跨度>>跨度>跨度><跨度类="hljs-template-variable">{{<跨度类="hljs-name">块跨度><跨度类="hljs-params">(“base_integer_widget”)跨度>}}跨度><跨度类="xml"><跨度类="hljs-name">div跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endblock跨度>跨度>%}跨度>
收集表格,可以通过覆盖一个块来覆盖一个完全自定义的原型。例如,如果您的表单字段被命名任务
,您将能够为每个任务更改小部件如下:
1 2 3 4 5 6 7 8
{%<跨度类="hljs-name">form_theme跨度>形式_self %}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>_tasks_entry_widget %}跨度><跨度类="xml"><<跨度类="hljs-name">tr跨度>>跨度><跨度类="hljs-tag"><<跨度类="hljs-name">道明跨度>>跨度>跨度><跨度类="hljs-template-variable">{{form_widget(form.task)}}跨度><跨度类="xml"><跨度类="hljs-name">道明跨度>>跨度><跨度类="hljs-tag"><<跨度类="hljs-name">道明跨度>>跨度>跨度><跨度类="hljs-template-variable">{{form_widget(form.dueDate)}}跨度><跨度类="xml"><跨度类="hljs-name">道明跨度>>跨度><跨度类="hljs-tag"><跨度类="hljs-name">tr跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endblock跨度>跨度>%}跨度>
1 2 3 4 5 6 7 8
{%<跨度类="hljs-name">form_theme跨度>形式_self %}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>_tasks_entry_widget %}跨度><跨度类="xml"><<跨度类="hljs-name">tr跨度>>跨度><跨度类="hljs-tag"><<跨度类="hljs-name">道明跨度>>跨度>跨度><跨度类="hljs-template-variable">{{form_widget(form.task)}}跨度><跨度类="xml"><跨度类="hljs-name">道明跨度>>跨度><跨度类="hljs-tag"><<跨度类="hljs-name">道明跨度>>跨度>跨度><跨度类="hljs-template-variable">{{form_widget(form.dueDate)}}跨度><跨度类="xml"><跨度类="hljs-name">道明跨度>>跨度><跨度类="hljs-tag"><跨度类="hljs-name">tr跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endblock跨度>跨度>%}跨度>
您不仅可以重写呈现的小部件,还可以更改完整的表单行或标签。为任务
字段,块名将如下:
表格的一部分 | 块名称 |
---|---|
标签 |
_tasks_entry_label |
小部件 |
_tasks_entry_widget |
行 |
_tasks_entry_row |
命名表单块).
在下一节中,您将看到如何进行几种常见的表单自定义。方法中描述的方法之一可应用这些自定义如何自定义表单渲染部分。
有许多方法可以自定义在提交带有错误的表单时如何呈现错误。属性时呈现字段的错误消息form_errors ()
助手:
1
{{form_errors(form.age)}}跨度>
默认情况下,错误在一个无序列表中呈现:
1 2 3
<<跨度类="hljs-name">ul跨度>>跨度><跨度类="hljs-tag"><<跨度类="hljs-name">李跨度>>跨度>此字段为必填项<跨度类="hljs-tag"><跨度类="hljs-name">李跨度>>跨度><跨度类="hljs-tag"><跨度类="hljs-name">ul跨度>>跨度>
重写错误的呈现方式所有字段,只需复制,粘贴和自定义form_errors
片段。
12 3 4 5 6 7 8 9 10 11 12 13 14
{%<跨度类="hljs-name">form_theme跨度>形式_self %}跨度><跨度类="xml">{# form_errors.html。树枝#}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>form_errors %}跨度><跨度类="xml">{%<跨度类="hljs-name">没有余地的跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">如果跨度>跨度>错误|<跨度类="hljs-keyword">长度跨度>>0%}跨度><跨度类="xml"><<跨度类="hljs-name">ul跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">为跨度>跨度>错误%}中的错误跨度><跨度类="xml"><<跨度类="hljs-name">李跨度>>跨度>跨度><跨度类="hljs-template-variable">{{错误。消息}}跨度><跨度类="xml"><跨度类="hljs-name">李跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endfor跨度>跨度>%}跨度><跨度类="xml"><跨度类="hljs-name">ul跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endif跨度>跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">endspaceless跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">endblock跨度>跨度>form_errors %}跨度>
提示跨度>
看到如何自定义表单渲染关于如何应用此定制。
您还可以为一个特定的字段类型定制错误输出。定制只有用于这些错误的标记遵循与上面相同的方向,但将内容放在相对中_errors
块(或文件的情况下,PHP模板)。例如:text_errors
(或text_errors.html.php
).
提示跨度>
看到如何处理表单主题以找出您必须自定义的特定块或文件。
某些对你的表单更全局的错误(即不特定于一个字段)会单独呈现,通常在你的表单顶部:
1
{{form_errors(form)}}跨度>
定制只有用于这些错误的标记,遵循与上面相同的方向,但现在检查是否复合
变量设置为真正的
.如果是的话真正的
,这意味着当前呈现的是一个字段的集合(例如,整个表单),而不仅仅是一个单独的字段。
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
{%<跨度类="hljs-name">form_theme跨度>形式_self %}跨度><跨度类="xml">{# form_errors.html。树枝#}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>form_errors %}跨度><跨度类="xml">{%<跨度类="hljs-name">没有余地的跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">如果跨度>跨度>错误|<跨度类="hljs-keyword">长度跨度>>0%}跨度><跨度类="xml">{%<跨度类="hljs-name">如果跨度>跨度>复合%}跨度><跨度类="xml"><<跨度类="hljs-name">ul跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">为跨度>跨度>错误%}中的错误跨度><跨度类="xml"><<跨度类="hljs-name">李跨度>>跨度>跨度><跨度类="hljs-template-variable">{{错误。消息}}跨度><跨度类="xml"><跨度类="hljs-name">李跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endfor跨度>跨度>%}跨度><跨度类="xml"><跨度类="hljs-name">ul跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">其他的跨度>%}跨度><跨度类="xml">{#……显示单个字段的错误#}跨度><跨度类="xml">{%<跨度类="hljs-name">endif跨度>跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">endif跨度>跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">endspaceless跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">endblock跨度>跨度>form_errors %}跨度>
form_row ()函数,它呈现字段的标签、错误和HTML小部件。自定义用于呈现的标记所有窗体字段行,重写form_row
片段。类中添加类div
元素围绕每一行:
1 2 3 4 5 6 7 8
{# form_row.html。树枝#}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>form_row %}跨度><跨度类="xml"><<跨度类="hljs-name">div跨度><跨度类="hljs-attr">类跨度>=<跨度类="hljs-string">“form_row”跨度>>跨度>跨度><跨度类="hljs-template-variable">{{form_label(form)}}跨度><跨度类="xml">{{form_errors(form)}}跨度><跨度类="xml">{{form_widget(form)}}跨度><跨度类="xml"><跨度类="hljs-name">div跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endblock跨度>跨度>form_row %}跨度>
提示跨度>
看到如何自定义表单渲染关于如何应用此定制。
1 2 3 4 5 6 7 8
{# form_row.html。树枝#}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>form_row %}跨度><跨度类="xml"><<跨度类="hljs-name">div跨度><跨度类="hljs-attr">类跨度>=<跨度类="hljs-string">“form_row”跨度>>跨度>跨度><跨度类="hljs-template-variable">{{form_label(form)}}跨度><跨度类="xml">{{form_errors(form)}}跨度><跨度类="xml">{{form_widget(form)}}跨度><跨度类="xml"><跨度类="hljs-name">div跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endblock跨度>跨度>form_row %}跨度>
提示跨度>
看到如何自定义表单渲染关于如何应用此定制。
*),可以通过自定义了form_label
片段。
如果在与表单相同的模板中进行表单自定义,请修改使用
标记并添加以下内容:
1 2 3 4 5 6 7 8 9
{%<跨度类="hljs-name">使用跨度>跨度>“form_div_layout.html。用form_label作为base_form_label %}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>了form_label %}跨度><跨度类="xml">{{<跨度类="hljs-name">块跨度><跨度类="hljs-params">(“base_form_label”)跨度>}}跨度><跨度类="xml">{%<跨度类="hljs-name">如果跨度>跨度>标签与(false)不相同,需要%}跨度><跨度类="xml"><<跨度类="hljs-name">跨度跨度><跨度类="hljs-attr">类跨度>=<跨度类="hljs-string">“要求”跨度><跨度类="hljs-attr">标题跨度>=<跨度类="hljs-string">“此字段为必填项”跨度>>跨度>*<跨度类="hljs-tag"><跨度类="hljs-name">跨度跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endif跨度>跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">endblock跨度>跨度>%}跨度>
如果你在一个单独的模板中进行表单定制,请使用以下方法:
1 2 3 4 5 6 7 8 9
{%<跨度类="hljs-name">扩展跨度>跨度>“form_div_layout.html。嫩枝' %}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>了form_label %}跨度><跨度类="xml">{{<跨度类="hljs-name">父跨度><跨度类="hljs-params">()跨度>}}跨度><跨度类="xml">{%<跨度类="hljs-name">如果跨度>跨度>标签与(false)不相同,需要%}跨度><跨度类="xml"><<跨度类="hljs-name">跨度跨度><跨度类="hljs-attr">类跨度>=<跨度类="hljs-string">“要求”跨度><跨度类="hljs-attr">标题跨度>=<跨度类="hljs-string">“此字段为必填项”跨度>>跨度>*<跨度类="hljs-tag"><跨度类="hljs-name">跨度跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endif跨度>跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">endblock跨度>跨度>%}跨度>
提示跨度>
看到如何自定义表单渲染关于如何应用此定制。
使用
标记并添加以下内容:1 2 3 4 5 6 7 8 9
{%<跨度类="hljs-name">使用跨度>跨度>“form_div_layout.html。用form_label作为base_form_label %}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>了form_label %}跨度><跨度类="xml">{{<跨度类="hljs-name">块跨度><跨度类="hljs-params">(“base_form_label”)跨度>}}跨度><跨度类="xml">{%<跨度类="hljs-name">如果跨度>跨度>标签与(false)不相同,需要%}跨度><跨度类="xml"><<跨度类="hljs-name">跨度跨度><跨度类="hljs-attr">类跨度>=<跨度类="hljs-string">“要求”跨度><跨度类="hljs-attr">标题跨度>=<跨度类="hljs-string">“此字段为必填项”跨度>>跨度>*<跨度类="hljs-tag"><跨度类="hljs-name">跨度跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endif跨度>跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">endblock跨度>跨度>%}跨度>
1 2 3 4 5 6 7 8 9
{%<跨度类="hljs-name">扩展跨度>跨度>“form_div_layout.html。嫩枝' %}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>了form_label %}跨度><跨度类="xml">{{<跨度类="hljs-name">父跨度><跨度类="hljs-params">()跨度>}}跨度><跨度类="xml">{%<跨度类="hljs-name">如果跨度>跨度>标签与(false)不相同,需要%}跨度><跨度类="xml"><<跨度类="hljs-name">跨度跨度><跨度类="hljs-attr">类跨度>=<跨度类="hljs-string">“要求”跨度><跨度类="hljs-attr">标题跨度>=<跨度类="hljs-string">“此字段为必填项”跨度>>跨度>*<跨度类="hljs-tag"><跨度类="hljs-name">跨度跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endif跨度>跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">endblock跨度>跨度>%}跨度>
提示跨度>
看到如何自定义表单渲染关于如何应用此定制。
使用标记并添加以下内容:
1 2 3 4 5 6 7 8 9
{%<跨度类="hljs-name">使用跨度>跨度>“form_div_layout.html。使用base_form_widget_simple %}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>form_widget_simple %}跨度><跨度类="xml">{{<跨度类="hljs-name">块跨度><跨度类="hljs-params">(“base_form_widget_simple”)跨度>}}跨度><跨度类="xml">{%<跨度类="hljs-name">如果跨度>跨度>帮助被定义为%}跨度><跨度类="xml"><<跨度类="hljs-name">跨度跨度><跨度类="hljs-attr">类跨度>=<跨度类="hljs-string">“阻止”跨度>>跨度>跨度><跨度类="hljs-template-variable">{{help}}跨度><跨度类="xml"><跨度类="hljs-name">跨度跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endif跨度>跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">endblock跨度>跨度>%}跨度>
如果你在一个单独的模板中进行表单定制,请使用以下方法:
1 2 3 4 5 6 7 8 9
{%<跨度类="hljs-name">扩展跨度>跨度>“form_div_layout.html。嫩枝' %}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>form_widget_simple %}跨度><跨度类="xml">{{<跨度类="hljs-name">父跨度><跨度类="hljs-params">()跨度>}}跨度><跨度类="xml">{%<跨度类="hljs-name">如果跨度>跨度>帮助被定义为%}跨度><跨度类="xml"><<跨度类="hljs-name">跨度跨度><跨度类="hljs-attr">类跨度>=<跨度类="hljs-string">“阻止”跨度>>跨度>跨度><跨度类="hljs-template-variable">{{help}}跨度><跨度类="xml"><跨度类="hljs-name">跨度跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endif跨度>跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">endblock跨度>跨度>%}跨度>
若要在字段下方呈现帮助消息,可传入帮助
变量:
1
{{form_widget(形式。标题,{'help': 'foobar'}) }}跨度>
提示跨度>
看到如何自定义表单渲染关于如何应用此定制。
1 2 3 4 5 6 7 8 9
{%<跨度类="hljs-name">使用跨度>跨度>“form_div_layout.html。使用base_form_widget_simple %}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>form_widget_simple %}跨度><跨度类="xml">{{<跨度类="hljs-name">块跨度><跨度类="hljs-params">(“base_form_widget_simple”)跨度>}}跨度><跨度类="xml">{%<跨度类="hljs-name">如果跨度>跨度>帮助被定义为%}跨度><跨度类="xml"><<跨度类="hljs-name">跨度跨度><跨度类="hljs-attr">类跨度>=<跨度类="hljs-string">“阻止”跨度>>跨度>跨度><跨度类="hljs-template-variable">{{help}}跨度><跨度类="xml"><跨度类="hljs-name">跨度跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endif跨度>跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">endblock跨度>跨度>%}跨度>
1 2 3 4 5 6 7 8 9
{%<跨度类="hljs-name">扩展跨度>跨度>“form_div_layout.html。嫩枝' %}跨度><跨度类="xml">{%<跨度类="hljs-name">块跨度>跨度>form_widget_simple %}跨度><跨度类="xml">{{<跨度类="hljs-name">父跨度><跨度类="hljs-params">()跨度>}}跨度><跨度类="xml">{%<跨度类="hljs-name">如果跨度>跨度>帮助被定义为%}跨度><跨度类="xml"><<跨度类="hljs-name">跨度跨度><跨度类="hljs-attr">类跨度>=<跨度类="hljs-string">“阻止”跨度>>跨度>跨度><跨度类="hljs-template-variable">{{help}}跨度><跨度类="xml"><跨度类="hljs-name">跨度跨度>>跨度>跨度><跨度类="hljs-template-tag">{%<跨度类="hljs-name">endif跨度>跨度>%}跨度><跨度类="xml">{%<跨度类="hljs-name">endblock跨度>跨度>%}跨度>
帮助
变量:1
{{form_widget(形式。标题,{'help': 'foobar'}) }}跨度>
提示跨度>
看到如何自定义表单渲染关于如何应用此定制。
作为第二个参数传递的数组包含表单“variables”。有关Twig中这个概念的详细信息,请参见树枝模板表单函数和变量引用.