如何控制表单的渲染

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.0,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

如何控制表单的渲染

到目前为止,您已经看到了如何用一行代码呈现整个表单。当然,在渲染时你通常需要更大的灵活性:

  • 嫩枝
  • PHP
1 2 3 4 5 6 7
{# app /资源/视图/ / new.html违约。树枝#}{{form_start(form)}}{{form_errors(form)}}{{form_row(form.task)}}{{form_row(form.dueDate)}}{{form_end(form)}}

你们已经知道了form_start ()而且form_end ()函数,但是其他函数是做什么的呢?

form_errors(形式)
将所有错误呈现为整个表单的全局错误(特定于字段的错误显示在每个字段旁边)。
form_row (form.dueDate)
呈现标签、任何错误和给定字段的HTML表单小部件(例如。dueDate)内部,默认情况下,adiv元素。

大部分的工作是由form_row类中每个字段的标签、错误和HTML表单小部件div标签。在如何处理表单主题部分,你将学习如何form_row可以在许多不同的级别上定制输出。

提示

您可以通过访问表单的当前数据form.vars.value

  • 嫩枝
  • PHP
1
{{form.vars.value.task}}

手工渲染每个字段

form_rowHelper非常有用,因为您可以非常快速地呈现表单的每个字段(用于“行”的标记也可以自定义)。但由于生活并不总是那么简单,您也可以完全手工渲染每个字段。的最终结果与使用form_row助手:

  • 嫩枝
  • PHP
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20
{{form_start(form)}}{{form_errors(form)}}<div>{{form_label(form.task)}}{{form_errors(form.task)}}{{form_widget(form.task)}}div><div>{{form_label(form.dueDate)}}{{form_errors(form.dueDate)}}{{form_widget(form.dueDate)}}div><div>{{form_widget(form.save)}}div>{{form_end(form)}}

如果字段的自动生成标签不太正确,你可以显式地指定它:

  • 嫩枝
  • PHP
1
{{了form_label(形式。task, ' task Description')}}

某些字段类型具有可以传递给小部件的附加呈现选项。这些选项在每种类型中都有文档说明,但是一个常见的选项是attr,它允许您修改表单元素上的属性。下面将添加task_field类添加到呈现的输入文本字段:

  • 嫩枝
  • PHP
1
{{form_widget(形式。任务,{'attr': {'class': 'task_field'}})}}

如果您需要“手动”呈现表单字段,那么您可以访问字段的单个值,例如id的名字而且标签.例如,得到id

  • 嫩枝
  • PHP
1
{{form.task.vars.id}}

要获取表单字段的name属性所使用的值,需要使用full_name值:

  • 嫩枝
  • PHP
1
{{form.task.vars。full_name}}

树枝模板函数参考

如果您正在使用Twig,则可以在参考手册.阅读本文,了解有关可用的helper的所有信息,以及每个helper可以使用的选项。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。