dongzi0857 2016-03-05 07:08
浏览 15
已采纳

ZF2保存到多个表

I have a mapper class, OrganizationMapper that saves data to multiple tables with the save method. The save method looks like this:

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();
        ...
}

There are a couple more cycles of $action#, $sql#, $stmt#, $result#.

How can I avoid these repetitive cycles?

  • 写回答

1条回答 默认 最新

  • dpdt79577 2016-03-05 08:04
    关注

    To avoid duplicate code create an additional method, let's call it insertIntoTable(). This method will be an auxiliary function for inserting data into a certain 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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 深度学习残差模块模型
  • ¥20 两个不同Subnet的点对点连接
  • ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
  • ¥15 差动电流二次谐波的含量Matlab计算
  • ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
  • ¥15 C#如何调用串口数据
  • ¥15 MATLAB与单片机串口通信
  • ¥15 L76k模块的GPS的使用
  • ¥15 请帮我看一看数电项目如何设计
  • ¥23 (标签-bug|关键词-密码错误加密)