[Form] Refactored processing of the "empty_value" option in DateType
This commit is contained in:
parent
38c30b71bd
commit
14e293fc66
@ -69,12 +69,6 @@ class DateType extends AbstractType
|
|||||||
$yearOptions = $monthOptions = $dayOptions = array();
|
$yearOptions = $monthOptions = $dayOptions = array();
|
||||||
|
|
||||||
if ('choice' === $options['widget']) {
|
if ('choice' === $options['widget']) {
|
||||||
if (is_array($options['empty_value'])) {
|
|
||||||
$options['empty_value'] = array_merge(array('year' => null, 'month' => null, 'day' => null), $options['empty_value']);
|
|
||||||
} else {
|
|
||||||
$options['empty_value'] = array('year' => $options['empty_value'], 'month' => $options['empty_value'], 'day' => $options['empty_value']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$years = $months = $days = array();
|
$years = $months = $days = array();
|
||||||
|
|
||||||
foreach ($options['years'] as $year) {
|
foreach ($options['years'] as $year) {
|
||||||
@ -170,6 +164,21 @@ class DateType extends AbstractType
|
|||||||
return $options['widget'] !== 'single_text';
|
return $options['widget'] !== 'single_text';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$emptyValueFilter = function (Options $options, $emptyValue) {
|
||||||
|
if (is_array($emptyValue)) {
|
||||||
|
return array_merge(
|
||||||
|
array('year' => null, 'month' => null, 'day' => null),
|
||||||
|
$emptyValue
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'year' => $emptyValue,
|
||||||
|
'month' => $emptyValue,
|
||||||
|
'day' => $emptyValue
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
$resolver->setDefaults(array(
|
$resolver->setDefaults(array(
|
||||||
'years' => range(date('Y') - 5, date('Y') + 5),
|
'years' => range(date('Y') - 5, date('Y') + 5),
|
||||||
'months' => range(1, 12),
|
'months' => range(1, 12),
|
||||||
@ -192,6 +201,10 @@ class DateType extends AbstractType
|
|||||||
'compound' => $compound,
|
'compound' => $compound,
|
||||||
));
|
));
|
||||||
|
|
||||||
|
$resolver->setFilters(array(
|
||||||
|
'empty_value' => $emptyValueFilter,
|
||||||
|
));
|
||||||
|
|
||||||
$resolver->setAllowedValues(array(
|
$resolver->setAllowedValues(array(
|
||||||
'input' => array(
|
'input' => array(
|
||||||
'datetime',
|
'datetime',
|
||||||
|
Reference in New Issue
Block a user