Диапазон дат формы Symfony плюс существующая дата - PullRequest
0 голосов
/ 03 января 2019

У меня есть форма, которую я использую для создания и обновления сущности. Одним из атрибутов является дата startDate, которую можно использовать в этом и следующем году. Так что в настоящее время 2019 и 2020. Это мой код в TestType.php :

->add('startDate', DateType::class, [
    'years' => range(date('Y'), date('Y') +1),
])

Это работает как ожидалось. Есть одна проблема, с которой я сталкиваюсь, когда пользователь хочет обновить сущность данными за прошлый год, например 2017. В этом случае я хотел бы изменить диапазон на этот год (2017) до настоящего момента + 1 год (2020). Есть ли способ достичь этого в файле TestType.php ?

1 Ответ

0 голосов
/ 03 января 2019

Вы можете установить начальный год для предварительно заданного события данных, например:

$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
    $event->getForm()->add('startDate', DateType::class, [
        'years' => range(
            $event->getData()->getStartDate() ?
                $event->getData()->getStartDate()->format('Y') :
                date('Y'),
            date('Y')+1
         ),
    ]);
});

Документация событий формы Symfony

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...