1

我想覆盖现有的日期字段类型,以便可以使用 js 组件。到目前为止我尝试过:

{% block date_widget %}
{% spaceless %}         
    <input type="text" {{ block('attributes') }} readonly="true" value="{{ value }}"/>
    <script>
        mycal = new dhtmlxCalendarObject("{{ id }}");
        mycal.setSkin('yahoolike');
        mycal.setDateFormat('%d.%m.%Y');
        mycal.loadUserLanguage("de");
        mycal.draw();
    </script>          
{% endspaceless %}
{% endblock date_widget %}

到目前为止它不起作用(显示了js组件,但没有功能),我的问题是:在中value,我需要将日期表示为像'31.12.2011'这样的字符串,但value似乎是一个空数组。

另一个问题:twig/sf2 那么如何识别结果呢?组件在输入字段中将日期写为字符串,但 sf 给了我一个错误

给定“数组”、“字符串”类型的预期参数

我使用 Symfony 2.0,Beta 5

4

1 回答 1

1

我成功了——我的错误是我忘记将“widget”选项指定为单个文本:“widget”=>“single_text”。

这是我的表单生成器:

$builder->add('abgabedatum', 'date', array('label' => 'Abgabedatum', 'widget' => 'single_text'));

以及我在 fields.html.twig 中的条目(我的 form_theme)

{% block date_widget %}
{% spaceless %} 
<input type="text" {{ block('attributes') }} readonly="true" value="{{ value }}"/>
<script>
mycal = new dhtmlxCalendarObject("{{ id }}");
mycal.setSkin('yahoolike');
mycal.setDateFormat('%d.%m.%Y');
mycal.loadUserLanguage("de");
mycal.draw();
</script> 
{% endspaceless %}
{% endblock date_widget %}
于 2011-06-20T17:12:07.320 回答