symfony 1.4 doctrine 1.2 Doctrine_Record :: postSave()

时间:2016-04-05 08:45:49

标签: php mysql symfony-1.4 doctrine-1.2

我有使用post save hook的doctrine模型类:

class MyClass extends BaseMyClass
{
  public function postSave($event)
  {
    myFunctionCache::getInstance()->remove(MyClassTable::CACHE_KEY_PREFIX);
  }
}

我希望在保存mysql中MyClass对象的更改后按键清除redis数据,并且在没有重载db的情况下工作,但现在在mysql中应用更改数据之前清除redis。我在寻找原因并找到了sfFormObject :: save

try
{
  $con->beginTransaction();

  $this->doSave($con);

  $con->commit();
}
catch (Exception $e)
{
  $con->rollBack();

  throw $e;
}

和postSave挂钩在doSave中调用,但在此提交之后。我尝试通过将myListener添加到连接来使用postTransactionCommit,但它对我没有帮助。 然后我尝试添加自己的钩子到doctrine记录并在提交后触发它:

{
  $con->beginTransaction();

  $this->doSave($con);

  $con->commit();

  $event = new Doctrine_Event($this, Doctrine_Event::TX_COMMIT);
  $this->getObject()->postCommit($event);
}

这也没有成功。有什么建议吗?

0 个答案:

没有答案