После установки нового Symfony2.6 вместе с интегрированной формой темы Bootstrao. У меня сейчас есть проблема при рендеринге полей Money.
А картина это, наверное, проще, чем пытаться ее описать.
Код, используемый для визуализации поля with-in Bootstrap_3_layout.html.twig, выглядит следующим образом:
//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 поля работали отлично.
Я проверил, что расширение Intl включено в php.ini и в config.yml У меня есть эти настройки:
//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)}}
Я нашел причину. Что-то среднее между версией Bootstrap для Symfony вступало в конфликт с BrainCrafted / BootstrapBundle.
Я знаю, что добавление темы Bootstrap в Symfony2.6, вероятно, предназначено для того, чтобы свести на нет необходимость внешних пакетов для использования 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>
Других решений пока нет …