Twig form_theme_self自定义单独字段

2024-04-19

我有一个视图,我试图覆盖每个单独字段的表单主题http://symfony.com/doc/current/cookbook/form/form_customization.html#how-to-customize-an-individual-field http://symfony.com/doc/current/cookbook/form/form_customization.html#how-to-customize-an-individual-field.

该视图看起来像这样:

{% form_theme form _self %}

{% block _my_form_foo_widget %}
    <div class="input-append">
        {{ block('number_widget') }}
        <span class="add-on">%</span>
    </div>
{% endblock %}

<form>
    {{ form_row(form.foo) }}
    {{ form_row(form.bar) }}
</form>

foo 和 bar 行的一切看起来都符合预期,但是_my_form_foo_widget块本身也包含在输出中,即:

<div class="input-append">
    <span class="add-on">%</span>
</div>

<form>
    <div>
        <label for="my_form_foo">Bar</label>
        <div class="input-append">
            <input type="text" id="my_form_foo" name="my_form[foo]">
            <span class="add-on">%</span>
        </div>
    </div>
    <div>
        <label for="my_form_bar">Foo</label>
        <input type="text" id="my_form_bar" name="my_form[bar]">
    </div>
</form>

我一生都无法弄清楚我做错了什么。作为解决方法,我只是将块包含在 HTML 注释中。

我使用的是 Symfony 2.4.1 和 Twig 1.15.0。


你正在经历twig的预期行为。

如果您不这样做,新定义的块将直接在当前模板中呈现延伸另一个模板。


Example:

template_A.html.twig:

  • 有一个主体(=块之外的代码)=>直接渲染的块

<html>
<body>
{% block content -%}
Foo
{%- endblock -%} 

Bar

{%- block more_content -%}
Foo
{%- endblock %}
</body>
</html>

=> 输出:FooBarFoo(正在渲染模板+主体中存在的所有块)


Example:

template_B.html.twig:

  • 扩展模板不允许有主体
  • 只会渲染存在于的块template_A.html.twig

{% extends 'templateA.html.twig' %} 

{% block content -%}
Bar
{%- endblock %}

{% block not_in_template_a %}
Some String
{% endblock %}

=> 输出:BarBarFoo(但确实not render Some String因为块not_in_template_a原始模板中不存在)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Twig form_theme_self自定义单独字段 的相关文章

随机推荐

  • 如何从 launch.json 传递带有特殊字符的参数?

    我试图通过 launch json 将参数传递给我的 Python 程序 并且我的参数之一需要特殊字符 因为它是密码 我计划添加更安全的方式来输入密码 但这不是重点 这是我的 launch json 密码已更改 但仍带有特殊字符 Use I
  • 通过 Paramiko SSH 的 SQLAlchemy

    我的服务器上有一个数据库 我需要通过 SSH 访问该数据库 现在我通过使用命令行来获取数据来处理数据库 import paramiko ssh paramiko SSHClient ssh set missing host key poli
  • Mockito 并不是在嘲笑电话

    我正在测试的功能之一是通过 ssh 登录到一台机器 我想模拟 ping 方法 它实际上尝试 ssh 进入机器 因为我并没有真正 ssh 进入机器 我正在测试的类 public class TestMachine public int pin
  • 如何阻止UITextView进入时向上滚动

    我有一个UITextView包含在一个UITableViewCell 最初显示视图时布局是正确的 但是一旦我单击UITextView它会自动向上滚动一点 第一行的上半部分字符变得不可见 这张图是当UITextView不活跃 UITextVi
  • NSDateFormatter 获取 Null

    我在我的项目中得到一个字符串 我将字符串传递给 dateFormatter 但我得到 nil 在字符串中而不是IST我可能会得到PDT我可能会得到任何其他格式 NSString currentDateString 2012 11 09 12
  • 分割scrapy的大CSV文件

    是否可以使 scrapy 写入每个不超过 5000 行的 CSV 文件 我怎样才能给它一个自定义的命名方案 我应该修改吗CsvItemExporter 尝试这个管道 coding utf 8 Define your item pipelin
  • “setIndentationLeft”不是“iTextsharp.text.Paragraph”的成员

    我正在添加出现错误的段落 p setindentationLeft 不是 itextsharp text paragraph 的成员 Dim bf As BaseFont BaseFont CreateFont Dim p As New P
  • MVC WebGrid 是开源的吗?

    MVC WebGrid 是开源的吗 如果可以的话哪里可以找到源代码 当前版本的 WebGrid 几乎没有文档 实现不完整等 我正在尝试做一件简单的事情 即向视图中的 WebGrid Column 添加可见性属性 但这是不可能的 您可以下载A
  • 如何在字符串中使用变量

    我正在尝试在字符串中实现变量 我已经搜索过这个并尝试向它扔不同的东西 但似乎没有任何效果 我有一个如下所示的变量 http localhost 8080 Editor name Default 我使用以下方法获取值没有问题 function
  • Dataflow 2.1.0 中是否有 IntrabundleParallelization 的替代方案?

    根据 dataflow 2 X 的发行说明 IntraBundleParallelization 已被删除 有没有办法控制 增加数据流 2 1 0 上 DoFns 的并行度 当我在 1 9 0 版本的数据流上使用 IntrabundlePa
  • 带百分比的 CSS 位置

    我在另一个 div 中相对位置 div 时遇到问题 我想制作一个位于屏幕水平中间的 div 并在这个 div 中我想放置 3 个具有相同高度的其他 div 但他们所有人都应该做出反应 图片胜于雄辩 div div class row div
  • 警告似乎指向不同的对象地址

    我正在使用 PySide 当我尝试将电子表格设置为某个小部件时收到警告 09 18 14 48 54 107 WARNING D 0x7ff4a0074650 qt Could not parse stylesheet of widget
  • Python os.chdir() 似乎不起作用

    我似乎无法更改 python 中的目录 import os os getcwd C Users Jon Folder IdbyGenotype os chdir r C Users Jon Folder IdbyGenotype thiso
  • Typescript `typeof React.Component` 不扩展接口?定义高阶组件时遇到问题

    我正在创建一个高阶组件来包装扩展接口的组件 interface ClickOutsideInterface onClickOutside e Event gt void 我创建的工厂期望React ComponentClass实施Click
  • 在 Android 上使用 obgenesis 时出现 NoClassDefFoundError

    我正在开发一个 Android 应用程序 它使用com rits cloning and org objenesis 深度克隆对象的库 目的是将相同的对象添加到我的树结构类中两次或多次 而不必担心原始对象引用相同的对象 自从定期clone
  • 重新启动在 Apache + mod_python 上运行的 Django 应用程序

    我正在 Apache mod python 上运行 Django 应用程序 当我对代码进行一些更改时 有时它们会立即生效 有时则不会 直到我重新启动 Apache 然而 我真的不想这样做 因为它也是一个运行其他东西的生产服务器 还有其他方法
  • 在 ListTile 中放置两个尾随图标

    我想将两个图标并排放置在 ListTile 的 尾随 一侧 我尝试添加一个 Row 小部件 其中包含两个图标 但它完全搞乱了整个 ListTile 的布局 使其无法使用 有什么办法可以扩大分配给尾部部分的空间吗 这是代码 import pa
  • 在 Java Runtime.getRuntime().exec(...) 中使用引号和双引号

    我正在尝试在 Mac OSX 中从 Java 启动 Lisp 映像 使用控制台中的图像 我输入以下内容 lisp image eval package method some argument 一切都运行良好 在Java中 我在使用传递引号
  • 为什么大多数 API 分页不依赖 HTTP Range 标头?

    我搜索了很多 但找不到这个问题的好的答案 作为 HATEOAS 爱好者 我认为这个标题非常适合 Range item 1 20 100 在HTTP规范中 我不明白一些 矛盾 范围单位可以接受 其他范围单位 range unit bytes
  • Twig form_theme_self自定义单独字段

    我有一个视图 我试图覆盖每个单独字段的表单主题http symfony com doc current cookbook form form customization html how to customize an individual