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?
我有一个mapper类, 还有几个循环的 如何避免这些重复循环? p>
div> OrganizationMapper code>,它使用
保存 code>方法。
save code>方法如下所示: p>
public function save(OrganizationInterface $ organization){
$ action = new Insert('TABLE NAME') ;
$ action-&gt; values([&lt; SOME VALUES&gt;]);
$ sql = new Sql($ this-&gt; dbAdapter);
$ stmt = $ sql-&gt; prepareStatementForSqlObject($ action) ;
$ result = $ stmt-&gt; execute();
$ action1 = new Insert('OTHER TABLE NAME');
$ action1-&gt; values([OTHER VALUES]);
$ sql1 = new Sql($ this-&gt; dbAdapter);
$ stmt1 = $ sql1-&gt; prepareStatementForSqlObject($ action1);
$ result1 = $ stmt1-&gt; execute();
...
}
code> pre>
$ action# code>,
$ sql# code>,
$ stmt# code>,
$ result# code>。 p>
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;
}