新主题字段呈现问题

时间:2014-12-19 19:02:11

标签: php twitter-bootstrap symfony twig symfony-2.6

安装新的Symfony2.6以及集成的Bootstrao表单主题后。我现在在渲染Money字段时遇到了问题。

它可能比试图描述它更容易。

Issue with Money Field

用于在Bootstrap_3_layout.html.twig中使用with-in渲染字段的代码如下所示:

//Bootstrap_3_layout.html.twig
{% block money_widget -%}
    <div class="input-group">
        {% set prepend = '{{' == money_pattern[0:2] %}
        {% if not prepend %}
            <span class="input-group-addon">{{ money_pattern|replace({ '{{ widget }}':''}) }}</span>
        {% endif %}
        {{- block('form_widget_simple') -}}
        {% if prepend %}
            <span class="input-group-addon">{{ money_pattern|replace({ '{{ widget }}':''}) }}</span>
        {% endif %}
    </div>
{%- endblock money_widget %}

渲染的Html看起来像这样:

<div class="input-group">
   <input type="text" id="cost" name="product[cost]" required="required" class="form-control">
   <span class="input-group-addon">{{ tag_start }}€{{ tag_end }} </span>
</div>

在升级到2.6之前,这些字段完全正常。

我已经检查过在php.ini和config.yml中启用了Intl扩展我有这些设置:

//Config.yml
framework:
    translator:      { fallback: "%locale%" }
    default_locale:  "%locale%"

//Php.ini
[intl]
intl.default_locale = en_utf8

//forms/ProductType.php
->add('cost', 'money', array(
'currency' => 'EUR',
'label' => 'Cost',
))

//views/show.html.twig
{{ form_row(form.cost)}}

1 个答案:

答案 0 :(得分:1)

加,我找到了原因。 Symfony版本的Bootstrap与BrainCrafted / BootstrapBundle相冲突。

我知道向Symfony2.6添加Bootstrap主题可能意味着无需使用Bootstrap的外部包,但是我仍然希望使用Braincrafted包的一部分。因此,我能够根据自己的需要设法使其正常工作的方法是删除:

//Braincrafter/BootstrapBundle/Resources/config/services/form.xml
    <service id="braincrafted_bootstrap.form.type.money" class="%braincrafted_bootstrap.form.type.money.class%">
        <tag name="form.type" alias="money" />
    </service>