Установка интервала времени или даты с помощью Doctrine

#php #mysql #symfony #doctrine-orm #doctrine

#php #mysql #symfony #doctrine-orm #доктрина

Вопрос:

Я унаследовал от базы данных MySQL столбец «time», представляющий «время в неделю» в диапазоне от «00:00:00» до «167:59:59» (24*7 = 168).

Соответствующее объявление ORM является :

  * @var DateTime $startTime
 * @ORMColumn(name="startTime", type="interval")
  

По-видимому, Doctrine всегда использует DateTime (не DateInterval) с PHP, вероятно, для обеспечения совместимости с другими движками БД.

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

Например :

 $pWeek->setEndTime(new DateTime('T'06:00:00'));
  

установит DateTime в сущности, но NULL в базе данных.

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

Комментарии:

1. Тип interval , похоже, не существует. У вас есть создать свой собственный тип? Возможно, проблема возникает отсюда.

Ответ №1:

Это странно, но в итоге этот код был… работает.

Понятия не имею, как я пришел к тому, что это не сработало, я предполагаю, что это, скорее всего, просто проблема с кэшем.

Спасибо