2012-12-14 19 views
0

我剛剛遇到了一個問題,我的Symfony2應用程序呈現具有無效日期選擇輸入的表單。具體來說,它使用裏面的數字來選擇「月份」,而不是月份名稱。symfony2 - 日期選擇輸入呈現時間戳而不是月份名稱

形式類型的定義是這樣的:

$builder 
     ->add('title') 
     ->add('shortcut') 
     ->add('description') 
     ->add('category') 
     ->add('release_date', 'date', array(
      'input' => 'datetime', 
      'widget' => 'choice' 
     )); 

這個定義,然後(在嫩枝使用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將選項文本渲染爲月份名稱(例如1月,2月等)?非常感謝你。

編輯: 嫩枝模板(表格部分)如下:

<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> 

所以沒有什麼特別有

+0

你能告訴我們你的樹枝代碼的形式? – cheesemacfly

+0

我剛剛編輯了原帖,但沒有什麼特別的樹枝代碼..無論如何,希望它有幫助 – user1904102

+0

如果你添加日期過濾器{{form_widget(edit_form.release_date)| date(「m」)}}} '見[這裏](http://twig.sensiolabs.org/doc/filters/date.html)? – cheesemacfly

回答

6

當然,你可以提供的格式選項將日期時間轉化爲您選擇的格式:

$builder 
    ->add('title') 
    ->add('shortcut') 
    ->add('description') 
    ->add('category') 
    ->add('release_date', 'date', array(
     'input' => 'datetime', 
     'widget' => 'choice', 
     'format' => 'yMMMMd', 
    )); 

這將打印一年的選擇框,例如, 2012,一個月份名稱較長的月份,以及一個月份的例如21。看看here瞭解更多格式。

+0

非常感謝你,你救了我的一天:) – user1904102

相關問題