Как в сущности Symfony 4.3 (тип поля datetime) вместо default_value отдавать NULL?

В Symfony 4.3 и более поздних версиях можно использовать тип поля "datetime" и указывать, что значение по умолчанию должно быть NULL.

Для этого в сущности необходимо добавить аннотацию @ORMColumn(nullable=true) к свойству, которое представляет поле типа "datetime".

Например, предположим, у вас есть сущность Article, в которой есть поле publishedAt типа "datetime". Чтобы указать, что значение по умолчанию должно быть NULL, вы можете использовать следующий код:

use DoctrineORMMapping as ORM;

/**
 * @ORMEntity
 */
class Article
{
    /**
     * @ORMColumn(type="datetime", nullable=true)
     */
    private $publishedAt;

    // ...

    public function getPublishedAt(): ?DateTimeInterface
    {
        return $this->publishedAt;
    }

    public function setPublishedAt(?DateTimeInterface $publishedAt): void
    {
        $this->publishedAt = $publishedAt;
    }

    // ...
}

В этом примере в аннотации @ORMColumn использован параметр nullable=true, который указывает, что поле может содержать значение NULL. Следующий код в методах getPublishedAt() и setPublishedAt() гарантирует, что они принимают и возвращают объекты DateTimeInterface (включая NULL).

Теперь, когда объект Article будет сохраняться в базе данных, если значение $publishedAt равно NULL, значение по умолчанию для столбца в базе данных также будет NULL.