Doctrine, как задать значение даты по умолчанию?

В Symfony с использованием Doctrine можно задать значение даты по умолчанию в сущности, используя аннотацию @ORMColumn и параметры nullable и options.

Для установки значения даты по умолчанию, вам сначала нужно указать тип поля как datetime или datetime_immutable. Вот пример использования аннотации @ORMColumn с параметрами для определения значения даты по умолчанию:

use DoctrineORMMapping as ORM;

/**
 * @ORMEntity
 * @ORMTable(name="my_entity")
 */
class MyEntity
{
    /**
     * @ORMColumn(type="datetime", nullable=true, options={"default"="CURRENT_TIMESTAMP"})
     */
    private $createdAt;
    
    //...
}

В приведенном выше примере поле $createdAt имеет тип datetime, и мы использовали параметры nullable=true и options={"default"="CURRENT_TIMESTAMP"}.

Параметр nullable=true позволяет полю иметь значение null, если нет явного значения, а options={"default"="CURRENT_TIMESTAMP"} устанавливает текущую дату и время как значение по умолчанию.

Если вы хотите использовать конкретное значение или выражение в качестве значения по умолчанию, вы можете указать его в параметре options с помощью соответствующего синтаксиса.

Когда Doctrine создает таблицу для вашей сущности, она автоматически установит указанное значение как значение по умолчанию для столбца. Это означает, что если не будет задано другое значение при создании новой записи, оно будет использоваться как значение по умолчанию.

Задав значение даты по умолчанию вы можете обеспечить чтобы поле всегда имело некоторое значение, даже если оно не указано явно.