如何自定义表单渲染
编辑本页形式的主题或使用任何内置主题,例如Symfony表单的引导主题ob娱乐下载.
form()树枝函数足以呈现整个表单,包括其所有字段和错误消息:
1 2 3 4
{# form是控制器通过$this->renderForm('…', ['form' => $form])或$this->render('…', ['form' => $form->createView()]) #}{{form(form)}}
的下一步是使用form_start (),form_end (),form_errors ()而且form_row ()树枝函数渲染不同的表单部分,这样你就可以自定义添加HTML元素和属性:
12 3 4 5 6 7 8 9 10 11 12 13 14
{{form_start(form)}}<div类=“my-custom-class-for-errors”>{{form_errors(form)}}div><div类=“行”><div类=“上校”>{{form_row(form.task)}}div><div类=“上校”id=“some-custom-id”>{{form_row(form.dueDate)}}div>div>{{form_end(form)}}
的form_row ()
函数输出整个字段内容,包括标签、帮助消息、HTML元素和错误消息。所有这些都可以使用其他Twig函数进一步定制,如下图所示:
的了form_label (),form_widget (),form_help ()而且form_errors ()树枝函数让你完全控制如何渲染每个表单字段,所以你可以完全自定义它们:
1 2 3 4 5 6 7 8 9 10
<div类=“表单控件”><我类=“fa fa-calendar”>我>{{form_label(form.dueDate)}}{{form_widget(form.dueDate)}}<小>{{form_help(form.dueDate)}}小><div类=“形状误差”>{{form_errors(form.dueDate)}}div>div>
谨慎
如果手动渲染每个字段,请确保不要忘记_token
自动添加用于CSRF保护的字段。
你也可以使用{{form_rest(form)}}
(推荐)来呈现任何不是手动呈现的字段。看到form_rest()文档欧宝官网下载app下面是更多信息。
请注意
在本文后面,您可以找到这些Twig函数的完整参考以及更多的使用示例。
了form_label ()函数让你定义一个自定义标签来覆盖表单中定义的标签:
1
{{了form_label(形式。“我的自定义任务标签”)}}
一些表单字段类型具有可以传递给小部件的其他呈现选项。这些选项在每种类型中都有文档说明,但是一个常见的选项是attr
,它允许您修改表单元素上的HTML属性。下面将添加task_field
CSS类到呈现的输入文本字段:
1
{{form_widget(形式。任务,{'attr': {'class': 'task_field'}})}}
请注意
如果您要一次呈现整个表单(或整个嵌入表单),则变量
参数将只应用于表单本身,而不应用于其子表单。换句话说,以下将不将一个"foo"类属性传递给表单中的所有子字段:
1 2
{# does **not** work -变量不是递归的{{form_widget(形式,{attr”:{“类”:“foo”}})}}
如果您需要“手动”呈现表单字段,那么您可以访问字段的单个值(例如id
,的名字
而且标签
)使用var
财产。例如,得到id
:
1
{{form.task.vars.id}}
请注意
在本文后面,您可以找到这些Twig变量的完整引用及其描述。
这个助手还输出form_rest ()
(这将在本文后面解释),除非您设置render_rest
假:
1 2
{#不渲染未渲染的字段#}{{form_end(form, {render_rest: false})}}
form()树枝函数足以呈现整个表单,包括其所有字段和错误消息:
1 2 3 4
{# form是控制器通过$this->renderForm('…', ['form' => $form])或$this->render('…', ['form' => $form->createView()]) #}{{form(form)}}
1 2 3 4
{# form是控制器通过$this->renderForm('…', ['form' => $form])或$this->render('…', ['form' => $form->createView()]) #}{{form(form)}}
的下一步是使用form_start (),form_end (),form_errors ()而且form_row ()树枝函数渲染不同的表单部分,这样你就可以自定义添加HTML元素和属性:
12 3 4 5 6 7 8 9 10 11 12 13 14
{{form_start(form)}}<div类=“my-custom-class-for-errors”>{{form_errors(form)}}div><div类=“行”><div类=“上校”>{{form_row(form.task)}}div><div类=“上校”id=“some-custom-id”>{{form_row(form.dueDate)}}div>div>{{form_end(form)}}
的form_row ()
函数输出整个字段内容,包括标签、帮助消息、HTML元素和错误消息。所有这些都可以使用其他Twig函数进一步定制,如下图所示:
的了form_label (),form_widget (),form_help ()而且form_errors ()树枝函数让你完全控制如何渲染每个表单字段,所以你可以完全自定义它们:
1 2 3 4 5 6 7 8 9 10
<div类=“表单控件”><我类=“fa fa-calendar”>我>{{form_label(form.dueDate)}}{{form_widget(form.dueDate)}}<小>{{form_help(form.dueDate)}}小><div类=“形状误差”>{{form_errors(form.dueDate)}}div>div>
谨慎
如果手动渲染每个字段,请确保不要忘记_token
自动添加用于CSRF保护的字段。
你也可以使用{{form_rest(form)}}
(推荐)来呈现任何不是手动呈现的字段。看到form_rest()文档欧宝官网下载app下面是更多信息。
请注意
在本文后面,您可以找到这些Twig函数的完整参考以及更多的使用示例。
了form_label ()函数让你定义一个自定义标签来覆盖表单中定义的标签:
1
{{了form_label(形式。“我的自定义任务标签”)}}
一些表单字段类型具有可以传递给小部件的其他呈现选项。这些选项在每种类型中都有文档说明,但是一个常见的选项是attr
,它允许您修改表单元素上的HTML属性。下面将添加task_field
CSS类到呈现的输入文本字段:
1
{{form_widget(形式。任务,{'attr': {'class': 'task_field'}})}}
请注意
如果您要一次呈现整个表单(或整个嵌入表单),则变量
参数将只应用于表单本身,而不应用于其子表单。换句话说,以下将不将一个"foo"类属性传递给表单中的所有子字段:
1 2
{# does **not** work -变量不是递归的{{form_widget(形式,{attr”:{“类”:“foo”}})}}
如果您需要“手动”呈现表单字段,那么您可以访问字段的单个值(例如id
,的名字
而且标签
)使用var
财产。例如,得到id
:
1
{{form.task.vars.id}}
请注意
在本文后面,您可以找到这些Twig变量的完整引用及其描述。
1
{{了form_label(形式。“我的自定义任务标签”)}}
attr
,它允许您修改表单元素上的HTML属性。下面将添加task_field
CSS类到呈现的输入文本字段:1
{{form_widget(形式。任务,{'attr': {'class': 'task_field'}})}}
请注意
如果您要一次呈现整个表单(或整个嵌入表单),则变量
参数将只应用于表单本身,而不应用于其子表单。换句话说,以下将不将一个"foo"类属性传递给表单中的所有子字段:
1 2
{# does **not** work -变量不是递归的{{form_widget(形式,{attr”:{“类”:“foo”}})}}
id
,的名字
而且标签
)使用var
财产。例如,得到id
:1
{{form.task.vars.id}}
请注意
在本文后面,您可以找到这些Twig变量的完整引用及其描述。
这个助手还输出form_rest ()
(这将在本文后面解释),除非您设置render_rest
假:
1 2
{#不渲染未渲染的字段#}{{form_end(form, {render_rest: false})}}
form_rest ()
(这将在本文后面解释),除非您设置render_rest
假:1 2
{#不渲染未渲染的字段#}{{form_end(form, {render_rest: false})}}
看到“如何自定义表单渲染“去了解变量
论点。
1 2 3 4 5
{#只渲染与此字段相关的错误信息#}{{form_errors(form.name)}}{#渲染任何与任何表单字段不相关的“全局”错误#}{{form_errors(form)}}
1 2 3 4 5
{#只渲染与此字段相关的错误信息#}{{form_errors(form.name)}}{#渲染任何与任何表单字段不相关的“全局”错误#}{{form_errors(form)}}
谨慎
在Bootstrap 4窗体主题中,form_errors ()
已经包含在了form_label ()
.请在引导4主题文档欧宝官网下载app.
第二个参数form_widget ()
是一个变量数组。最常见的变量是attr
,它是要应用于HTML小部件的HTML属性数组。在某些情况下,某些类型还可以传递其他与模板相关的选项。这些是在一个类型一个类型的基础上讨论的。的属性
不会递归应用到子字段,如果你一次呈现许多字段(例如。form_widget(形式)
).
看到“如何自定义表单渲染,以了解更多关于变量
论点。
第二个参数form_row ()
是一个变量数组。Symfony中提供的模板只允许覆盖上面示例中所示的ob娱乐下载标签。
看到“如何自定义表单渲染“去了解变量
论点。