ZF2 保存到多个表

ZF2 saving to multiple tables

我有一个映射器 class,OrganizationMapper 使用 save 方法将数据保存到多个表。 save 方法如下所示:

public function save(OrganizationInterface $organization) {
        $action = new Insert('TABLE NAME');
        $action->values([<SOME VALUES>]);
        $sql = new Sql($this->dbAdapter);
        $stmt = $sql->prepareStatementForSqlObject($action);
        $result = $stmt->execute();

        $action1 = new Insert('OTHER TABLE NAME');
        $action1->values([OTHER VALUES]);
        $sql1 = new Sql($this->dbAdapter);
        $stmt1   = $sql1->prepareStatementForSqlObject($action1);
        $result1 = $stmt1->execute();
        ...
}

还有几个循环 $action#$sql#$stmt#$result#

如何避免这些重复循环?

为避免重复代码创建一个额外的方法,我们称之为 insertIntoTable()。该方法将作为向某个table:

插入数据的辅助函数
public function save(OrganizationInterface $organization) {
        $result = $this->insertIntoTable('TABLE NAME', $values);

        $result1 = $this->insertIntoTable('OTHER TABLE NAME', $values1);
        ...
}

private function insertIntoTable($tableName = "", $values) {
        $action = new Insert($tableName);
        $action->values($values);
        $sql = new Sql($this->dbAdapter);
        $stmt = $sql->prepareStatementForSqlObject($action);
        $result = $stmt->execute();

        return $result;
}