我最近遇到了一个问题,我的 Symfony2 应用程序呈现带有无效日期选择输入的表单。具体来说,它使用内部数字而不是月份名称呈现“月份”选择。
表单类型的定义如下:
$builder
->add('title')
->add('shortcut')
->add('description')
->add('category')
->add('release_date', 'date', array(
'input' => 'datetime',
'widget' => 'choice'
));
然后,此定义(通过在 Twig 中使用 form_widget)为月份选择呈现以下内容:
<select id="nucleo_gamesbundle_gametype_release_date_month" name="nucleo_gamesbundle_gametype[release_date][month]" required="required">
<option value="1">1326585600</option>
<option value="2">1329264000</option>
<option value="3">1331769600</option>
<option value="4">1334448000</option>
<option value="5">1337040000</option>
<option value="6">1339718400</option>
<option value="7">1342310400</option>
<option value="8">1344988800</option>
<option value="9">1347667200</option>
<option value="10">1350259200</option>
<option value="11">1352937600</option>
<option value="12">1355529600</option>
</select>
有谁知道,如何强制 Symfony 将选项文本呈现为月份名称(例如一月、二月等)?非常感谢你。
编辑: 树枝模板(表单部分)如下所示:
<form action="{{ path('game_admin_update', {'id' : entity.id}) }}" method="post" class="form" {{ form_enctype(edit_form) }}>
<fieldset>
<div class="widget">
<div class="title"><img src="{{ asset('admin/images/icons/dark/list.png') }}" alt="" class="titleIcon" /><h6>Základní informace</h6></div>
<div class="formRow">
{{ form_label(edit_form.title, 'form.game.title'|trans({},'admin')) }}
<div class="formRight">{{ form_widget(edit_form.title) }}</div>
<div class="clear"></div>
</div>
<div class="formRow">
{{ form_label(edit_form.shortcut, 'form.game.shortcut'|trans({},'admin')) }}
<div class="formRight">{{ form_widget(edit_form.shortcut) }}</div>
<div class="clear"></div>
</div>
<div class="formRow">
{{ form_label(edit_form.description, 'form.game.description'|trans({},'admin')) }}
<div class="formRight">{{ form_widget(edit_form.description, { 'attr': {'class': 'richEditor'} }) }}</div>
<div class="clear"></div>
</div>
<div class="formRow">
{{ form_label(edit_form.release_date, 'form.game.release_date'|trans({},'admin')) }}
<div class="formRight">{{ form_widget(edit_form.release_date) }}</div>
<div class="clear"></div>
</div>
{{ form_rest(edit_form) }}
<div class="formSubmit"><input type="submit" value="{{ 'form.game.submit.edit'|trans({},'admin') }}" class="greenB" /></div>
<div class="clear"></div>
</div>
</fieldset>
所以没什么特别的