使用Propel在NOW()处设置一个值

时间:2015-03-25 14:05:45

标签: propel

我想在Propel中重写这种查询:

UPDATE my_table
SET my_datetime_field = NOW()
WHERE my_id = 99;

有办法吗?

1 个答案:

答案 0 :(得分:0)

是的,您有几个选择:

选项1

假设您在schema.xml中将列定义为TIMESTAMP,则可以执行以下操作:

$row->setMyDateTimeField('now');

Read more about Propel's Temporal Clumns...

选项2

您可以在类中设置一个钩子,每次在表格中更新一行时都会调用该钩子:

<?php
class MyTable extends BaseMyTable
{
    public function preUpdate(PropelPDO $con=null)
    {
       $this->setMyDateTimeField('now');
       return true;
    }
....

Read more about Propel's Behaviours

<强>结论

如果您有多个更新表的逻辑,则选项2更有用,所有更新都将从此更新中受益