如何自定义形式呈现 编辑该页面 形式的主题或使用任何内置的主题,如引导主题Symfony形式ob娱乐下载。 ()树枝函数形式足以使整个表单,包括所有字段和错误消息: 1 2 3 4 {#形式是一个变量通过控制器通过$ this - >渲染('……”,“形式”= > $形式])或$ this - >渲染('……”,“形式”= > $形式- > createView ())) #}{{形式(形式)}} 下一步是使用form_start (),form_end (),form_errors ()和form_row ()树枝函数呈现不同的形式部分所以你可以定制它们添加HTML元素和属性: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 {{form_start(形式)}}<div类=“my-custom-class-for-errors”>{{form_errors(形式)}}< /div><div类=“行”><div类=“上校”>{{form_row (form.task)}}< /div><div类=“上校”id=“some-custom-id”>{{form_row (form.dueDate)}}< /div>< /div>{{form_end(形式)}} 的form_row ()函数输出整个字段内容,包括标签,帮助信息,HTML元素和错误消息。所有这些可以进一步定制使用其他分支功能,见下图: 的了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_rest()的文档欧宝官网下载app下面以获取更多信息。 请注意 在本文的后面,您可以找到这些树枝的全部参考函数用法示例。 form_ * ()助手前一节所示呈现表单字段的不同部分,包括其所有的HTML元素。一些开发人员和设计师纠结于这种行为,因为它隐藏了所有的HTML元素形式主题不容易定制。 这就是为什么Symfoob娱乐下载ny提供了其他树枝形成帮手,渲染每个表单字段的值没有添加任何HTML周围部分: field_name () field_value () field_label () field_help () field_errors () field_choices ()(迭代器选择字段;例如<选择>) 在使用这些帮手时,您必须编写所有所有表单字段的HTML内容,所以你不再需要处理表单的主题: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <输入的名字=”{{field_name (form.username)}}”价值=”{{field_value (form.username)}}”占位符=”{{field_label (form.username)}}”类=“表单控件”/ ><选择的名字=”{{field_name (form.country)}}”类=“表单控件”><选项价值=”“>{{field_label (form.country)}}< /选项>{%为标签,价值field_choices (form.country) %}<选项价值=”{{value}}”>{{标签}}< /选项>{%endfor%}< /选择> 了form_label ()函数允许您定义一个自定义标签覆盖一个表单中定义: 1 {{了form_label(形式。任务,我的自定义任务标签)}} 一些表单字段类型额外的渲染选项,可以传递到小部件。这些选项记录每种类型,但一个共同的选择attr,它允许您修改HTML表单元素的属性。以下将增加task_fieldCSS类呈现输入文本字段: 1 {{form_widget(形式。任务,{attr”:{‘类’:‘task_field}})}} 请注意 如果你立刻呈现一个完整的形式(或一个完整的嵌入式形式),变量争论只会应用于形式本身,而不是它的孩子。换句话说,以下将不通过“foo”类属性表单中的所有孩子的字段: 1 2 {# * *不* *工作——变量不是递归#}{{form_widget(形式,{attr”:{“类”:“foo”}})}} 如果你需要渲染表单字段“手工”然后你可以访问字段(如单个值id,的名字和标签)使用其var财产。例如获得id: 1 {{form.task.vars。id}} 请注意 在本文的后面,您可以找到这些树枝的全部参考变量及其描述。 形式的主题。 1 2 {#呈现形式和改变提交方法#}{{形式(形式,{“方法”:“得到”})}} 您将主要使用此辅助原型或如果您使用自定义形式的主题。如果你需要更多的灵活性呈现形式,您应该使用另一个帮手来呈现表单的各个部分: 1 2 3 4 5 6 7 8 {{form_start(形式)}}{{form_errors(形式)}}{{form_row (form.name)}}{{form_row (form.dueDate)}}{{form_row(形式。提交、{“标签”:提交我的})}}{{form_end(形式)}} enctype如果表单包含上传字段属性。 1 2 {#呈现开始标记和更改提交方法#}{{form_start(形式,{“方法”:“得到”})}} 1 {{form_end(形式)}} 该助手还输出form_rest ()(本文后面会详细解释),除非你设置render_rest假: 1 2 {#不要渲染unrendered领域#}{{form_end(形式,{render_rest:假})}} 1 2 3 4 5 6 7 8 9 {{了form_label (form.name)}}{#两种以下语法是等同的#}{{了form_label (form.name,“你的名字”,{label_attr:{“类”:“foo”}})}}{{了form_label (form.name null,{“标签”:“您的姓名”,“label_attr”:{“类”:“foo”}})}} 看到“如何自定义形式呈现“了解变量论点。 1 {{form_help (form.name)}}