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 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)