我想在Propel中重写这种查询:
UPDATE my_table
SET my_datetime_field = NOW()
WHERE my_id = 99;
有办法吗?
答案 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更有用,所有更新都将从此更新中受益