EasyAdmin Symfony Дата начала с 2012 г. по конец 2022 г.

Я новичок в Symfony и EasyAdmin. В моей сущности у меня день рождения. Но когда я его показываю, он показывает год начала 2012, конец 2022. Как я могу это исправить?

Это код:

/**
 * @var \date
 *
 * @ORM\Column(name="birth_day", type="date")
 */
private $birthDay;

person inez pro    schedule 26.07.2017    source источник


Ответы (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' }
person 1sloc    schedule 10.10.2017

Привет, мое решение этой проблемы. TestType.php в папке форм — это мой класс построителя форм.

use Symfony\Component\Form\Extension\Core\Type\DateType;

класс TestType расширяет 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#data-class

person ureyni    schedule 30.05.2018