gpt4 book ai didi

Symfony 表单标签渲染

转载 作者:行者123 更新时间:2023-12-04 18:34:53 25 4
gpt4 key购买 nike

我想将我的所有标签转换为该输入的占位符:

例如:

这是标准的:

<div>
<label>FooBar</label>
<input type="text"/>
</div>
<div>
<label>FooBar2</label>
<input type="checkbox"/>
</div>

这就是我想要的:

<div>
<input type="text" placeholder="FooBar"/>
</div>
<div>
<label>FooBar2</label>
<input type="checkbox"/>
</div>

我试图通过覆盖部分 Twig 表单模板来实现这一点,但没有成功。这是一种尝试:

{% block form_widget_simple %}
{% set type = type|default('text') %}

{% if type == 'text' %}
{% block form_label %}{% endblock %}
{% endif %}

<input placeholder="{{ label|trans({}, translation_domain) }}" data-test="formtest" type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
{% endblock form_widget_simple %}

谢谢!

最佳答案

在离开这里坐了一会儿并学习了更多 twig 之后,我终于回到了它并以正确的方式做到了。

IMO,这是应该做的:

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


{# override label creation, remove all labels from inputs and text areas #}

{% block form_row %}
{% spaceless %}
<div>
{% if form.vars.block_prefixes[1] != 'text' %}
{{ form_label(form) }}
{% endif %}
{{ form_errors(form) }}
{{ form_widget(form) }}
</div>
{% endspaceless %}
{% endblock form_row %}


{# widgets #}
{% block form_widget_simple %}
{% set type = type|default('text') %}
<input placeholder="{{ label|trans({}, translation_domain) }}" type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
{% endblock form_widget_simple %}

{% block textarea_widget %}
{% spaceless %}
<textarea placeholder="{{ label|trans({}, translation_domain) }}" {{ block('widget_attributes') }}>{{ value }}</textarea>
{% endspaceless %}
{% endblock textarea_widget %}

像魅力一样工作!

关于Symfony 表单标签渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22356948/

25 4 0