【问题标题】:ZF2 saving to multiple tablesZF2 保存到多个表
【发布时间】:2016-03-05 07:08:08
【问题描述】:

我有一个映射器类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#

如何避免这些重复循环?

【问题讨论】:

    标签: php model-view-controller zend-framework


    【解决方案1】:

    为避免重复代码创建一个额外的方法,我们称之为insertIntoTable()。该方法将作为向某个表中插入数据的辅助功能:

    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;
    }
    

    【讨论】:

    • 最好的想法总是很简单:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多