Как указать defaultValue для «сейчас» для столбца отметки времени в Propel? - PullRequest
5 голосов
/ 06 февраля 2012

Вот мое определение таблицы для схемы Propel.Столбец modified имеет тип timestamp (DateTime в PHP), и я хотел бы присвоить значение по умолчанию для сейчас .Я попытался установить значение «сейчас», но получаю сообщение об ошибке, используя команду propel-gen insert-sql:

«Ошибка синтаксиса или нарушение прав доступа: 1067 Неверное значение по умолчанию для« измененного ».

Кто-нибудь знает, как установить значение по умолчанию для столбца отметки времени в Propel?

<table name="mashup_setting">
   <!-- omitted previous column definition -->
   <column name="modified" type="timestamp" required="true" defaultValue="now" />
</table>

Ответы [ 3 ]

13 голосов
/ 07 февраля 2014

В более новых версиях Propel вы можете указать свой столбец следующим образом:

<column name="created" type="TIMESTAMP" defaultExpr="CURRENT_TIMESTAMP" />

Тогда он будет совместим с кросс-дБ.

5 голосов
/ 07 февраля 2012

Измените имя на «updated_at», которое является специальным полем в Propel, которое будет автоматически обновляться до NOW () при каждом обновлении поля.«create_at» также похож и будет делать то же самое при создании вашего объекта.

В вашей модели вы всегда можете прокси «модифицировать» или getModified () для getUpdatedAt () для завершения вашей функциональности.

Если вам нужно «изменить» в качестве имени для вашего столбца, вам нужно написать поведение, которое, как мне кажется, требует больше работы для достижения этой цели.Вы можете найти информацию о поведении здесь.

http://www.symfony -project.org / cookbook / 1_2 / ru / поведение

2 голосов
/ 10 апреля 2014

В документах на http://propelorm.org/behaviors/timestampable.html не указывается, доступно ли это в 1.6, но добавьте это в схему и сборку:

<behavior name="timestampable" />

В модели теперь есть два новых столбца, create_at и updated_at, что метка времени автоматически обновляется при сохранении:

$obj->save();
echo $obj->getCreatedAt(); // 2009-10-02 18:14:23
echo $obj->getUpdatedAt(); // 2009-10-02 18:14:25
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...