如何在ZF2中获取自定义PRIMARY KEY列的最后生成值?

时间:2016-04-23 12:52:10

标签: zend-framework2 primary-key zend-db

使用Zend\Db\Adapter\Driver\ResultInterface#getGeneratedValue() Zend\Db提供了获取上一个INSERT ed条目ID的简单方法,例如:

$action = new Insert('my_table');
$action->values($data);
$sql = new Sql($this->dbAdapter);
$statement = $sql->prepareStatementForSqlObject($action);
$result = $statement->execute();
$newId = $result->getGeneratedValue();

但是,如果PRIMARY KEY列调用“id”,它似乎只能起作用。如何检索另一列上定义的generatedValue的{​​{1}}?

2 个答案:

答案 0 :(得分:1)

最好使用提供getLastInsertValue()方法的Zend\Db\TableGateway\TableGateway

use Zend\Db\TableGateway\TableGateway;
$myTable = new TableGateway('my_table', $this->dbAdapter);
$action = new Insert('my_table');
$action->values($data);
$myTable->insertWith($action);
$newId = $myTable->getLastInsertValue();

答案 1 :(得分:0)

$this->dbAdapter->getDriver()->getLastGeneratedValue();