您遇到了Symfony的默認的年份範圍。爲了解決這個問題,你可以構建自己的DateTime類型是這樣的:
<?php
namespace AppBundle\AdminForm\Field;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\OptionsResolver\OptionsResolver;
class MyCustomDateType extends DateTimeType
{
public function configureOptions(OptionsResolver $resolver)
{
// Set the defaults from the DateTimeType we're extending from
parent::configureOptions($resolver);
// Override: Go back 20 years and add 20 years
$resolver->setDefault('years', range(date('Y') - 20, date('Y') + 20));
// Override: Use an hour range between 08:00AM and 11:00PM
$resolver->setDefault('hours', range(8, 23));
}
}
然後,您可以指示EasyAdmin使用這種類型的,像這樣:
- { property: 'occurance',
type: 'AppBundle\AdminForm\Field\MyCustomDateType',
label: 'Date and time' }