如何获取输入表单类型 [英] How to get input form type

查看:17
本文介绍了如何获取输入表单类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想获取表单字段类型并设置类字段类型

我尝试:

{# 表单字段行 #}{% 块 form_row %}{% 无空间 %}<div class="field-group{% if errors|length > 0%} error{%endif%}" id="fc-{{ id }}">{{ form_label(form, label|default(null)) }}<div class="field-item {{ type }}">{{ form_widget(form) }}{% if errors|length >0%}<div class="errors">{{ form_errors(form) }}</div>{% 万一 %}

{% endspaceless %}{% 结束块 %}

但是 {{ type }} 不起作用.

解决方案

你可以使用这个来获取字段类型:

{{ form.FIELD_NAME.vars.block_prefixes.2 }}

因此,如果您的表单中有一个名为 message 的字段,请使用:

{{ form.message.vars.block_prefixes.2 }}

对于嵌套表单字段类型,请使用:

{{ form.NESTED_FORM_NAME.FIELD_NAME.vars.block_prefixes.2 }}

要覆盖基本表单块,请在模板文件中执行以下操作:

<代码>....{% form_theme 表单_self %}{% 块 widget_attributes %}{% 无空间 %}id="{{ id }}" name="{{ full_name }}"{% if read_only %} readonly="readonly"{% endif %}{% if disabled %} disabled="disabled"{% endif %}{% if required %} required="required"{% endif %}{% if max_length %} maxlength="{{ max_length }}"{% endif %}{% if pattern %} pattern="{{ pattern }}{% 万一 %}{% 如果没有定义 attr.class %}class="{{ type|default('text') }}"{% 万一 %}{% for attrname, attrvalue in attr %}{% if attrname in ['placeholder', 'title'] %}{{ attrname }}="{{ attrvalue|trans({}, translation_domain) }}" {% elseifattrname == 'class' %}{{ attrname }}="{{ type|default('text') }} {{ attrvalue }}"{% else %}{{ attrname }}="{{ attrvalue }}" {% endif %}{% endfor %}{% endspaceless %}{% endblock widget_attributes %}{% 块内容 %}....{% 结束块 %}

或获得更好的类型:

<代码>....{% form_theme 表单_self %}{% 块 widget_attributes %}{% 无空间 %}id="{{ id }}" name="{{ full_name }}"{% if read_only %} readonly="readonly"{% endif %}{% if disabled %} disabled="disabled"{% endif %}{% if required %} required="required"{% endif %}{% if max_length %} maxlength="{{ max_length }}"{% endif %}{% if pattern %} pattern="{{ pattern }}{% 万一 %}{% 如果没有定义 attr.class %}class="{{ form.vars.block_prefixes.2 }}"{% 万一 %}{% for attrname, attrvalue in attr %}{% if attrname in ['placeholder', 'title'] %}{{ attrname }}="{{ attrvalue|trans({}, translation_domain) }}" {% elseifattrname == 'class' %}{{ attrname }}="{{ form.vars.block_prefixes.2 }} {{ attrvalue }}"{% else %}{{ attrname }}="{{ attrvalue }}"{% endif %}{% endfor %}{% endspaceless %}{% endblock widget_attributes %}{% 块内容 %}....{% 结束块 %}

I want get form field type and set class fot field type

i try:

{# Form field row #}
{% block form_row %}
{% spaceless %}
  <div class="field-group{% if errors|length > 0%} error{%endif%}" id="fc-{{ id }}">
    {{ form_label(form, label|default(null)) }}
    <div class="field-item {{ type }}">
      {{ form_widget(form) }}
      {% if errors|length > 0 %}
        <div class="errors">{{ form_errors(form) }}</div>
      {% endif %}
    </div>
  </div>
{% endspaceless %}
{% endblock %}

But {{ type }} not working.

解决方案

You can get the field type by using this:

{{ form.FIELD_NAME.vars.block_prefixes.2 }}

So if you got a field called message in your form use this:

{{ form.message.vars.block_prefixes.2 }}

For nested form field types use this:

{{ form.NESTED_FORM_NAME.FIELD_NAME.vars.block_prefixes.2 }}

EDIT :

To overwrite the basic form blocks do this in your template file:

....
{% form_theme form _self %}
{% block widget_attributes %}
{% spaceless %}
    id="{{ id }}" name="{{ full_name }}"{% if read_only %} readonly="readonly"{% endif %}{% if disabled %} disabled="disabled"{% endif %}{% if required %} required="required"{% endif %}{% if max_length %} maxlength="{{ max_length }}"{% endif %}{% if pattern %} pattern="{{ pattern }}"{% endif %}
    {% if not attr.class is defined %}
        class="{{ type|default('text') }}"
    {% endif %}
    {% for attrname, attrvalue in attr %}{% if attrname in ['placeholder', 'title'] %}{{ attrname }}="{{ attrvalue|trans({}, translation_domain) }}" {% elseif attrname == 'class' %}{{ attrname }}="{{ type|default('text') }} {{ attrvalue }}"{% else %}{{ attrname }}="{{ attrvalue }}" {% endif %}{% endfor %}
{% endspaceless %}
{% endblock widget_attributes %}
{% block content %}
    ....
{% endblock %}

OR to get beter types:

....
{% form_theme form _self %}
{% block widget_attributes %}
{% spaceless %}
    id="{{ id }}" name="{{ full_name }}"{% if read_only %} readonly="readonly"{% endif %}{% if disabled %} disabled="disabled"{% endif %}{% if required %} required="required"{% endif %}{% if max_length %} maxlength="{{ max_length }}"{% endif %}{% if pattern %} pattern="{{ pattern }}"{% endif %}
    {% if not attr.class is defined %}
        class="{{ form.vars.block_prefixes.2 }}"
    {% endif %}
    {% for attrname, attrvalue in attr %}{% if attrname in ['placeholder', 'title'] %}{{ attrname }}="{{ attrvalue|trans({}, translation_domain) }}" {% elseif attrname == 'class' %}{{ attrname }}="{{ form.vars.block_prefixes.2 }} {{ attrvalue }}"{% else %}{{ attrname }}="{{ attrvalue }}" {% endif %}{% endfor %}
{% endspaceless %}
{% endblock widget_attributes %}
{% block content %}
    ....
{% endblock %}

这篇关于如何获取输入表单类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
其他开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆