Я использую sfWidgetFormI18nDateTime в форме, и мне нужно добавить еще несколько лет (назад во времени). Например, 2007, 2006, 2005 и т. Д.
Виджет sfWidgetFormI18nDate поддерживает атрибут «years», а DateTime — нет.
Вот мой код:
$this->widgetSchema['created_at'] = new sfWidgetFormI18nDateTime(array('culture' => 'hu'));
$this->validatorSchema['created_at'] = new sfValidatorDateTime(array('required' => false));
Мне нужно что-то вроде этого:
$this->widgetSchema['created_at'] = new sfWidgetFormI18nDateTime(array('culture' => 'hu', 'years' => metWidgetTools::getYears()));
$this->validatorSchema['created_at'] = new sfValidatorDateTime(array('required' => false, 'years' => metWidgetTools::getYears()));
Есть ли способ, которым я могу обойти это?
Ваша схема виджета должна выглядеть примерно так
$years = range(2000, date('Y')); // from to 2000 to current year
$this->widgetSchema['created_at'] = new sfWidgetFormI18nDateTime(array(
'culture' => 'hu',
'date' => array(
'years' => array_combine($years, $years)
)
));
Других решений пока нет …