EasyAdmin Symfony Дата начала с 2012 и до конца 2022
Я новичок в Symfony и EasyAdmin. В моей сущности у меня день рождения. Но когда я показываю его, он показывает начало 2012 года, конец 2022 года. Как я могу это исправить?
Это код:
/**
* @var \date
*
* @ORM\Column(name="birth_day", type="date")
*/
private $birthDay;
2 ответа
Решение
Вы используете диапазон по умолчанию для 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' }
Привет, мое решение этой проблемы. TestType.php в папке форм - это мой класс конструктора форм.
use Symfony\Component\Form\Extension\Core\Type\DateType;
класс TestType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('name')
->add('birtdate',DateType::class, array(
'widget' => 'choice',
// this is actually the default format for single_text
'format' => 'yyyy-MM-dd',
'years' => range(date('Y')-80, date('Y'))
));
}
Ссылочная ссылка - https://symfony.com/doc/current/reference/forms/types/date.html