我想使用 ZF2 db 事务来更新多个表。通常我通过这样的方式为单个表进行事务处理:
$connection = null;
try {
$connection = $this->tableGateway->getAdapter()->getDriver()->getConnection();
$connection->beginTransaction();
$this->tableGateway->insert($data);
$connection->commit();
}
catch (Exception $e) {
if ($connection instanceof \Zend\Db\Adapter\Driver\ConnectionInterface) {
$connection->rollback();
}
}
现在我想在一个事务中更新两个表。在 ZF1 中,我通过创建 table2 类的实例并在同一事务中调用其适当的方法来做到这一点。但是由于我不知道在模型中调用另一个模型类的方法,所以我不能像 ZF1 那样做。我需要这个来完成一个简单的任务,比如在输入新账单(发票)时向 tbl_invoice 添加新行并更新 tbl_runno 表的发票运行编号。