2015-01-26 2 views
0

Я хочу создать поле даты только с селектором года. Сначала создайте это поле в форме, подобной этому.Дата типа формы со значениями по умолчанию

->add('visitDate', 
         'date', 
         array('label' => false, 
           'translation_domain' => 'messages', 
           'required' => false, 
           'widget'  => 'choice', 
           'input'  => 'array', 
           'years'  => range(date('Y'), 2006), 
           'months'  => range(1,12), 
           'days'  => range(1,31), 
           'empty_value' => array('month'=> 1, 'day' => 1), 
         ) 

И скрыть поле месяца и дня в ветке. Если я отправлю свою форму, поле месяца и дня получит сообщение «null» вместо 1.

Может кто-нибудь дать мне подсказку, почему это происходит?

ответ

0

Вы, кажется, опечатка

изменение

      'months'  => range(1,12), 
          'days'  => range(1,31), 
          'empty_value' => array('month'=> 1, 'day' => 1), 

в

      'months'  => range(1,12), 
          'days'  => range(1,31), 
          'empty_value' => array('months'=> 1, 'days' => 1), 

это должно быть, в противном случае, если этой работы вы это не распространяется есть тысяча способов рим если таковые вы хотите, чтобы пользователь выбирал только год, который вы могли бы сделать. как

// let the user post the $year as string "2015" 
$time = new DateTime(); 
$time->modify('first day of January '.$year); 
+0

К сожалению, опечатка не исправить мою проблему. Где я устанавливаю это значение $ time? В форме или контроллере? – smartcoderx

+0

Это исправить мои данные 'data' => date ('Y-m-d'), – smartcoderx

Смежные вопросы