我想获取表单字段类型并设置类fot字段类型
我尝试:
{# 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 %}
Run Code Online (Sandbox Code Playgroud)
但{{type}}无效.
A.L*_*A.L 23
从MatsRietdijk答案是正确的,但作为Symfony的2.3类型的指数似乎已经从2改为1.其结果,{{ form.vars.block_prefixes.1 }}将返回checkbox,date,choice,等.
在进行应用程序范围的自定义时,您可以使用它向表单行添加类:
{% block form_row %}
<div class="form_row {{ form.vars.block_prefixes.1 }}">
{{ form_label(form) }}
{{ form_widget(form) }}
{{ form_errors(form) }}
</div>
{% endblock form_row %}
Run Code Online (Sandbox Code Playgroud)
然后你可以应用CSS规则:
div.form_row.text {color:Red;}
Run Code Online (Sandbox Code Playgroud)
如果您使用Twitter引导程序,则可能会遇到问题,因为.checkbox该类存在于引导程序中.我建议使用Symfony表格行的前缀:
{% block form_row %}
<div class="form_row symfony_{{ form.vars.block_prefixes.1 }}">
{{ form_label(form) }}
{{ form_widget(form) }}
{{ form_errors(form) }}
</div>
{% endblock form_row %}
Run Code Online (Sandbox Code Playgroud)
CSS文件中的规则将有所不同:
div.form_row.symfony_text {color:Red;}
Run Code Online (Sandbox Code Playgroud)
Twitter引导程序表单主题现在包含在Symfony 2.6中.
Mat*_*ijk 19
您可以使用以下方法获取字段类型:
{{ form.FIELD_NAME.vars.block_prefixes.2 }}
Run Code Online (Sandbox Code Playgroud)
因此,如果您在表单中有一个名为message的字段,请使用以下命令:
{{ form.message.vars.block_prefixes.2 }}
Run Code Online (Sandbox Code Playgroud)
对于嵌套表单字段类型,请使用:
{{ form.NESTED_FORM_NAME.FIELD_NAME.vars.block_prefixes.2 }}
Run Code Online (Sandbox Code Playgroud)
编辑:
要覆盖基本表单块,请在模板文件中执行以下操作:
....
{% 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 %}
Run Code Online (Sandbox Code Playgroud)
或获得beter类型:
....
{% 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 %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11748 次 |
| 最近记录: |