Доктрина Symfony Date Infinity

Как я могу заставить Doctrine принимать infinity как допустимое значение даты?

Я уже пробовал добавить в config.yml

dbal:
    mapping_types:
        infinity: string

а также

dbal:
    types:
        infinity: string

Но без толку, не работает.

Doctrine генерирует исключение с сообщением:

Could not convert database value "infinity" to Doctrine Type date. Expect format: Y-m-d

Я использую Symfony 2.7 PHP 5.6.31

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
0
150
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Doctrine не поддерживает функции, специфичные для платформы, вам следует использовать настраиваемый тип сопоставления или управлять им.

пример:

class DateTimeType extends Type {
    public function convertToPHPValue($value, AbstractPlatform $platform)
    {
        if ($value=='infinity' || $value=='-infinity') {
             /manage it
        }

        //other code
    }
}

повлияет ли это на то, как Doctrine в настоящее время обрабатывает мой столбец даты? Мне нужна бесконечность, потому что это значение для особого случая в столбце даты. Извините, что беспокою вас.

Wreigh 10.05.2018 11:09

вам нужно создать тип custo или управлять им в поставщике доктрины или перезаписать этот класс, потому что доктрина не может этого сделать. Это не меняет того, как обращаться с датой, только вам нужно управлять бесконечностью @Wreigh

Alessandro Minoccheri 10.05.2018 11:15

Другие вопросы по теме