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;
}
我有一个映射器 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;
}